我运行詹金斯(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
答案 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 configure
或node-gyp configure --msvs_version=2015
为项目生成适当的构建文件,因为您提到已经安装了MSBuild 15和17。最好坚持使用到一个并为其配置node-gyp
(通过node-gyp获得更多可用命令,例如rebuild
)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