运行 npm install 时出现 node-gyp 错误

node-gyp error when running npm install

我是 node 的新手,有点不知所云。在 Mac OS X 和 Centos 6 上都遇到此错误。发生在我尝试过的所有 npm install xxx 命令中。非常感谢有关如何解决此错误的任何建议。

类似于 但我的用户名中没有空格,这解决了他的问题。

npm install canvas

> canvas@1.6.6 install /home/test1/ng2-webpack-demo/node_modules/canvas
> node-gyp rebuild

Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo' found
gyp: Call to './util/has_lib.sh freetype' returned exit status 0 while in 
binding.gyp. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit 
(/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:336:16)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit 
(internal/child_process.js:215:12)
gyp ERR! System Linux 2.6.32-642.4.2.el6.x86_64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-
gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/test1/ng2-webpack-demo/node_modules/canvas
gyp ERR! node -v v6.11.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN @angular/animations@4.3.6 requires a peer of @angular/core@4.3.6 but 
none was installed.
npm WARN @angular/material@2.0.0-beta.8 requires a peer of @angular/cdk@2.0.0-
beta.8 but none was installed.
npm WARN @angular/material@2.0.0-beta.8 requires a peer of 
@angular/core@^4.0.0 but none was installed.
npm WARN @angular/material@2.0.0-beta.8 requires a peer of 
@angular/common@^4.0.0 but none was installed.
npm WARN @ngtools/webpack@1.2.10 requires a peer of @angular/tsc-
wrapped@^0.5.0 but none was installed.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2 
(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 
fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: 
{"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! canvas@1.6.6 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the canvas@1.6.6 install script.
npm ERR! This is probably not a problem with npm. There is likely additional 
logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/test1/.npm/_logs/2017-08-29T15_54_58_848Z-debug.log

这是一个已知的canvas问题,可能是由于缺少本机库造成的。
试试看是否有帮助:

sudo npm uninstall -g node-gyp
sudo npm install -g node-gyp
brew install pkg-config cairo libpng jpeg giflib
npm i canvas

来源:https://github.com/Automattic/node-canvas/issues/913#issuecomment-368042394

我有同样的错误,原因是我没有安装 clang 编译器。 我的解决方案是安装 build-essential package

sudo apt-get install build-essential

我正在使用 Ubuntu 20.1 版本