由于 node-gyp 无法安装 npm:binding.gyp not found

Posted

技术标签:

【中文标题】由于 node-gyp 无法安装 npm:binding.gyp not found【英文标题】:Cannot npm install due to node-gyp: binding.gyp not found 【发布时间】:2017-07-27 02:34:50 【问题描述】:

我整天都在做这件事,并尝试了很多不同的东西:

卸载节点并安装最新版本 使用设置为2010, 2011, 2012, 2013, 2015--msvs_version= 标志 删除 .node-gyp 文件夹 将 python 路径添加到 .npmrc,如下所示:python=C:\Python27\python.exe npm -g install npm@next 正在运行 node-gyp rebuildnode-gyp configure 关注Robert Kehoe's guide

艰难时期。

这个包是一个 Electron/React 应用,我运行的是 Windows 10。npm install 的控制台输出是

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\Microsoft.Cpp.x64.Targets(514,5): error MSB8008: Specif
ied platform toolset (v120) is not installed or invalid. Please make sure that a supported PlatformToolset value is sel
ected. [C:\Users\scheinerbock\Desktop\mpstudio\node_modules\mplib\build\addon.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\scheinerbock\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)
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 Windows_NT 10.0.14393
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\scheinerbock\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\scheinerbock\Desktop\mpstudio\node_modules\mplib
gyp ERR! node -v v6.10.0
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok

对于node-gyp rebuild

gyp: binding.gyp not found (cwd: C:\Users\scheinerbock\Desktop\mpstudio) 尝试加载 binding.gyp

我已经脱离了我的驾驶室,除了解决方案之外,我将不胜感激任何建议或信息。

【问题讨论】:

您好 Ben,您能详细说明一下您是如何解决它的吗?更新机器的具体步骤?哪个节点版本,npm 版本,你运行了哪些确切的命令来成功?谢谢 @TyForHelpDude 我不再在这个项目上工作了,我什至没有我运行的计算机。所以不幸的是,我没有办法为你获取这些信息。对不起 【参考方案1】:

尝试了这么多解决方案,这个似乎立即对我有用。 安装 g++ 和 cmake,使用命令 'apt install make g++',对于 windows,我相信这些有他们的网站可供下载。

https://cmake.org/download/ - for make | https://sourceware.org/cygwin/ - for g++(如果不是在google上搜索gcc)

我还没有在 Windows 上测试过这个,这对我在 Linux 上使用 apt 命令有效。

【讨论】:

【参考方案2】:

我正在使用 macos catalina 10.15.5,我遇到了同样的问题,上述所有解决方案都对我不起作用。我能够通过运行解决这个问题

npm i -g node-gyp@latest && npm config set node_gyp "/usr/local/lib/node_modules/node-gyp/bin/node-gyp.js"

希望这对人们有所帮助。

【讨论】:

工作就像一个魅力。请注意...应该使用由特定环境确定的路径 node_gyp 。我的node-gyp.js 安装在~/.nvm/versions/node/v6.17.1/lib/node_modules/node-gyp/bin/node-gyp.js【参考方案3】:

创建一个 binding.gyp 文件并将其放置在您的项目根目录中。文件内容如下所示:


  "targets": [
    
      "target_name": "binding",
      "sources": [ "src/binding.cc" ]
    
  ]

binding.gyp 文件以类似 JSON 的格式描述了构建模块的配置。该文件与 package.json 一起放置在包的根目录中。看这里:https://github.com/nodejs/node-gyp#the-bindinggyp-file

【讨论】:

这对我在 macOS High Sierra 上没有影响 这里的解决方案在 macOS Big Sur 上的 @Zaid Haider (***.com/a/62108079/777885) 之后有效。仅供参考 binding.cc 可以只是一个空文件??【参考方案4】:

确保您安装了 python 2.x 版本而不是 3.x 对我来说,它在我安装 python 2.6 后工作

【讨论】:

【参考方案5】:

见this thread,也许有帮助。

node-gyp 使用 Visual Studio 在 Windows 上构建,所以我猜这个问题来自你的 VS 安装。

从这个路径来看(C:\Program Files (x86)\MSBuild),看起来它需要更新的版本(可能是 Visual Studio 2015 首次引入 MSBuild)。

【讨论】:

谢谢米海的回答。不幸的是,我确实安装了 VS2015,并且我也尝试了许多其他版本。我最终放弃了在我正在使用的旧计算机上构建项目,并成功地在新机器上构建。

以上是关于由于 node-gyp 无法安装 npm:binding.gyp not found的主要内容,如果未能解决你的问题,请参考以下文章

NPM/node-gyp 错误

npm install jquery 在 node-gyp 重建时失败

为 npm 整数安装 node-gyp 错误

节点 10 - npm 安装期间的“node-gyp 重建”错误

我无法使用npm安装夏普

npm 安装期间 mac 10.5.8 上的 node-gyp 'pkg-config: command not found'