【发布时间】:2019-11-08 09:26:03
【问题描述】:
在npm install -g serialport 尝试重建node-gyp 期间,我尝试在我们的内部网络无法访问互联网 中安装包serialport(即oxygen-cli 的依赖项)。
我遇到了一个错误,我解决了它,还有另一个错误等等。现在我遇到了这个错误:
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
serialport.cpp
serialport_win.cpp
win_delay_load_hook.cc
C:\Users\yehoshaa\AppData\Roaming\npm\node_modules\serialport\node_modules\nan\nan.h(24): fatal error C1083: Cannot open include file: 'node_version.h': No such file or directory (compiling source file ..\s
rc\serialport_win.cpp) [C:\Users\yehoshaa\AppData\Roaming\npm\node_modules\serialport\node_modules\@serialport\bindings\build\bindings.vcxproj]
C:\Users\yehoshaa\AppData\Roaming\npm\node_modules\serialport\node_modules\nan\nan.h(24): fatal error C1083: Cannot open include file: 'node_version.h': No such file or directory (compiling source file ..\s
rc\serialport.cpp) [C:\Users\yehoshaa\AppData\Roaming\npm\node_modules\serialport\node_modules\@serialport\bindings\build\bindings.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:189:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Windows_NT 10.0.16299
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\yehoshaa\AppData\Roaming\npm\node_modules\serialport\node_modules\@serialport\bindings
当我尝试只运行 node-gyp rebuild 时,我收到了这个错误:
LINK:致命错误 LNK1104:无法打开文件 'C:\Users\myuser\AppDate\Roaming\npm\Release\node.lib' [C:\Users\myuser\AppData\Roaming\npm\node_modules\node- gyp\build\binding.vcxproj]
我检查了binding.vcxproj 文件,我看到了这一行:
<AdditionalDependencies>C:\Users\myuser\AppData\Roaming\npm\$(Configuration)\node.lib</AdditionalDependencies>
我尝试在我的机器中搜索node.lib,但没有找到。
如果我从文件中删除这一行并运行 node-gyp build 它可以工作,但因为我必须执行 rebuild 再次下载的文件与有问题的行。
如果我添加标志--ignore-scripts,我成功安装了包,但它忽略了所有依赖项中的所有脚本,可以吗?
你知道怎么解决吗?或者如何安装sertialport没有做node-gyp rebuild(只忽略这个脚本而不是所有的依赖脚本)?
【问题讨论】:
标签: node.js npm node-modules node-gyp node-serialport