How can I ovecome this error in npm install?
Solution 1
First Try installing the binaries for canvas mentioned in https://github.com/Automattic/node-canvas
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Then install canvas:
npm install canvas
Solution 2
Did you start by running npm init
? I would assume so because of the node_modules folder mentioned in the error, but just checking.
You can install it with homebrew using:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
according to the docs here: https://github.com/Automattic/node-canvas
Samu Nemeth
Big fan of PIC chips and individually addressable LEDs! I like to program in HTML, JavaScrip (p5.js), and Processing. I also like watching The coding train!
Updated on July 27, 2022Comments
-
Samu Nemeth almost 2 years
Hello!
I'm a beginner programmer, and I'm making a discord bot using node and discord.js. I need a library named
canvas
, But it doest install!I programmed and tested this app on my windows pc, then sent it over to my raspberry server. It didn't work, so I tried deleting and installing the library again, but when installing, it gives this error:
(I'm trying to install it with this command:
npm install canvas
)npm ERR! path /home/pi/node/test/node_modules/canvas npm ERR! command failed npm ERR! command sh -c node-pre-gyp install --fallback-to-build npm ERR! Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/home/pi/node/test/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/home/pi/node/test/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v88' (1) npm ERR! node-pre-gyp info it worked if it ends with ok npm ERR! node-pre-gyp info using [email protected] npm ERR! node-pre-gyp info using [email protected] | linux | arm npm ERR! node-pre-gyp WARN Using needle for node-pre-gyp https download npm ERR! node-pre-gyp info check checked for "/home/pi/node/test/node_modules/canvas/build/Release/canvas.node" (not found) npm ERR! node-pre-gyp http GET https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz npm ERR! node-pre-gyp http 404 https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz npm ERR! node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz npm ERR! node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v88 ABI, glibc) (falling back to source compile with node-gyp) npm ERR! node-pre-gyp http 404 status code downloading tarball https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using [email protected] npm ERR! gyp info using [email protected] | linux | arm npm ERR! gyp info ok npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using [email protected] npm ERR! gyp info using [email protected] | linux | arm npm ERR! gyp info find Python using Python version 3.7.3 found at "/usr/bin/python3" npm ERR! gyp info spawn /usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/pi/node/test/node_modules/canvas/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/pi/.cache/node-gyp/15.0.1/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/home/pi/.cache/node-gyp/15.0.1', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/home/pi/.cache/node-gyp/15.0.1/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/home/pi/node/test/node_modules/canvas', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! Package pixman-1 was not found in the pkg-config search path. npm ERR! Perhaps you should add the directory containing `pixman-1.pc' npm ERR! to the PKG_CONFIG_PATH environment variable npm ERR! No package 'pixman-1' found npm ERR! gyp: Call to 'pkg-config pixman-1 --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1 npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:327:20) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:277:12) npm ERR! gyp ERR! System Linux 5.4.51-v7l+ npm ERR! gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/home/pi/node/test/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/home/pi/node/test/node_modules/canvas/build/Release" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v88" npm ERR! gyp ERR! cwd /home/pi/node/test/node_modules/canvas npm ERR! gyp ERR! node -v v15.0.1 npm ERR! gyp ERR! node-gyp -v v7.1.2 npm ERR! gyp ERR! not ok npm ERR! node-pre-gyp ERR! build error npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/home/pi/node/test/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/home/pi/node/test/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v88' (1) npm ERR! node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/home/pi/node/test/node_modules/node-pre-gyp/lib/util/compile.js:83:29) npm ERR! node-pre-gyp ERR! stack at ChildProcess.emit (node:events:327:20) npm ERR! node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1048:16) npm ERR! node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:288:5) npm ERR! node-pre-gyp ERR! System Linux 5.4.51-v7l+ npm ERR! node-pre-gyp ERR! command "/usr/bin/node" "/home/pi/node/test/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" npm ERR! node-pre-gyp ERR! cwd /home/pi/node/test/node_modules/canvas npm ERR! node-pre-gyp ERR! node -v v15.0.1 npm ERR! node-pre-gyp ERR! node-pre-gyp -v v0.11.0 npm ERR! node-pre-gyp ERR! not ok npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2020-10-27T20_10_02_765Z-debug.log```
-
Quentin over 3 yearsThey aren't using MacOS
-
Quentin over 3 yearsThey aren't using Windows either
-
Quentin over 3 yearsYou said Windows, not Linux! (And after following links and scrolling a bit, it's clear that brew does not properly support ARM processors)
-
Quentin over 3 yearsYes: "best-effort basis". i.e. not properly supported.
-
Samu Nemeth over 3 yearsThank you for the fast reply, It didn't solve my problem, but today I started a new project from scratch, did npm init, and installed all the libraries. It worked! It was probably some stuck in incompatibility from transitioning from Windows to Linux!
-
mmomtchev over 2 yearsAs someone already pointed out, the author of the question is not using macOS. Otherwise, on M1 Pro, one has indeed to recompile all native Node.js addons as almost no one is shipping pre-built binaries - mainly because Github Actions does not support it yet.
-
Mauvis Ledford about 2 yearsAs M1 Mac user this actually solved my issue with bad npm install. Thanks!