糟糕!堆栈错误:`C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ msbuild.exe`

时间:2018-08-30 04:38:49

标签: node.js jenkins npm msbuild npm-install

我运行詹金斯(Jenkins)作业时遇到以下错误。我已经安装了MSBuild 15和17,并指定了正确的路径。

有人能对此有所启发吗?问题出在哪里。谢谢。

(x86)\ Jenkins \ workspace \ POS4> npm install

  

pos4@1.0.10安装C:\ Program Files(x86)\ Jenkins \ workspace \ POS4   node-gyp重建

C:\ Program Files(x86)\ Jenkins \ workspace \ POS4>如果未定义npm_config_node_gyp(节点“ C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ npm-lifecycle \ node-gyp-bin \”。 ... \ node_modules \ node-gyp \ bin \ node-gyp.js“ rebuild)else(节点” C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ bin \ node-gyp.js“重建) 警告:缺少输入文件: C:\ Program Files(x86)\ Jenkins \ workspace \ POS4 \ build .. \ build \ Release \ binding.node 一次构建一个此解决方案中的项目。要启用并行构建,请添加“ / m”开关。 C:\ Program Files(x86)\ Jenkins \ workspace \ POS4 \ build \ binding.vcxproj(20,3):

错误MSB4019:导入的项目“ C:\ Micr 找不到osoft.Cpp.Default.props”。确认声明中的路径正确,并且文件  在磁盘上。

gyp错误!构建错误

gyp错误!堆栈错误:C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe失败,退出代码:1

gyp错误!堆栈在ChildProcess.onExit(C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ lib \ build.js:262:23) 糟糕!堆栈在ChildProcess.emit(events.js:182:13) 糟糕!堆栈位于Process.ChildProcess._handle.onexit(内部/child_process.js:238:12) 糟糕!系统Windows_NT 10.0.17134

5 个答案:

答案 0 :(得分:2)

这是在基于Windows的操作系统上构建的用户所面临的常见问题。 node-gyp错误表示本机模块无法构建。恕我直言,根据我的经验,从来没有一个单一的答案可以直接解决这个问题。但是,如果有人遇到node-gyp错误,我建议您遵循以下清单。您可能已经尝试过这些,但仅供参考。

  • 使用npm install --global windows-build-tools安装Windows构建工具。这将启用本机节点模块的编译,并且由felixrieseberg/windows-build-tools提供。构建工具包括诸如Python和Visual C ++包之类的项目(node-gyp似乎更喜欢Python 2.7)
  • 配置node-gyp以根据您的情况使用node-gyp configurenode-gyp configure --msvs_version=2015为项目生成适当的构建文件,因为您提到已经安装了MSBuild 15和17。最好坚持使用到一个并为其配置node-gyp(通过node-gyp获得更多可用命令,例如rebuild
  • 确保正确设置了 Python npm config路径。如果您是手动安装构建工具或使用上述链接安装的,请确保您的npm config指向有效的安装目录
      

    这些仅供参考,如果我遇到更多问题,我将在这里添加它们,因为在Windows计算机上玩弄node-gyp是我过去和现在遇到的麻烦。

  

由于找不到本地绑定,通常也会由于本地节点模块(例如SQLite)引起的错误而引发此错误。

答案 1 :(得分:1)

确保您不使用Node 12,因为node-gyp将会失败。最新版本为11.15.0。

答案 2 :(得分:0)

当我使用最新的npm和VS将节点从13降级到ver 11时,这为我解决了。

答案 3 :(得分:0)

我也在Windows env中得到了这个。但是,在linux中就可以了。所以我只是将node_moduels从linux复制到Windows。

答案 4 :(得分:-1)

请尝试将您的Node版本降级为11.15.0,因为它是最新的工作版本,您可以将n用于节点的版本管理。 n有一个简单的介绍。

$ npm install -g n
$ n 6.10.3

这非常易于使用。

然后您可以显示您的节点版本:

$ node -v
$ v8.11.1

选中此answer