在 OSX 上安装 webpack 和其他包时 node-gyp 重建失败

node-gyp rebuild fails when installing webpack and other packages on OSX

我在 OS 10.10.13,节点 v0.12.4 和 npm v2.10.1。每当我 运行 以下命令安装 webpack npm install webpack --save-dev --save-exact 时,我在调用 node-gyp rebuild 时收到以下错误:

> fsevents@0.3.6 install /Volumes/Macintosh HD/Users/ev_blurbs/Sites/products/react-week/new-app/node_modules/webpack/node_modules/watchpack/node_modules/chokidar/node_modules/fsevents
> node-gyp rebuild

  SOLINK_MODULE(target) Release/.node
  SOLINK_MODULE(target) Release/.node: Finished
  CXX(target) Release/obj.target/fse/fsevents.o
clang: error: no such file or directory: 'HD/Users/ev_blurbs/.node-gyp/0.12.4/src'
clang: error: no such file or directory: 'HD/Users/ev_blurbs/.node-gyp/0.12.4/deps/uv/include'
clang: error: no such file or directory: 'HD/Users/ev_blurbs/.node-gyp/0.12.4/deps/v8/include'
make: *** [Release/obj.target/fse/fsevents.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1074:12)
gyp ERR! System Darwin 14.3.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Volumes/Macintosh HD/Users/ev_blurbs/Sites/products/react-week/new-app/node_modules/webpack/node_modules/watchpack/node_modules/chokidar/node_modules/fsevents
gyp ERR! node -v v0.12.4
gyp ERR! node-gyp -v v1.0.3
gyp ERR! not ok
npm WARN optional dep failed, continuing fsevents@0.3.6

no such file or directory 错误似乎在错误的地方查找。例如,它正在检查:

HD/Users/ev_blurbs/.node-gyp/0.12.4/src

该文件位于:

/Volumes/Macintosh HD/Users/ev_blurbs/.node-gyp/0.12.4/src

我使用 homebrew 安装 node,最近更新了 node、npm 和 homebrew。如果您发现任何潜在问题,请告诉我。提前感谢您的帮助!

干杯, 埃文

这是一个 known issuegyp/node-gyp,影响所有平台。你可能想把你的两分钱加到那个问题上。

node-gyp 是 windows 的一个痛点,看起来它不会很快消失。 经过长时间的奋斗,我给你的建议 - 如果你可以选择在 mac 或 Linux machine 上开发,那就去做吧。但是 - 如果您绝对必须在 Windows 上进行开发 - 花一些时间来设置一个 vagrant 工作流程。或者,如果您能胜任这项任务 - 选择 Docker。正是出于这个原因,我为我的 windows 设置选择了 vagrant。为了避免 node-gyp 的噩梦...... Vagrant 基本上是一种自动配置 VM 运行ning Linux 和 运行 尽可能接近生产配置的环境的方法。 它的功能之一是在托管 OS - Windows 和 Linux VM 之间同步文件夹。这让你能够使用你最喜欢的编辑器和 windows 上的任何其他东西作为开发 machine,而你的代码和 npm 实际上安装 运行s 在 Linux 虚拟机。从他们开始 - 你可以使用 node-gyp。 希望这有帮助。