Windows 中 NPM 和 node-gyp 的问题
Posted
技术标签:
【中文标题】Windows 中 NPM 和 node-gyp 的问题【英文标题】:Troubles with NPM and node-gyp in Windows 【发布时间】:2016-03-23 22:45:27 【问题描述】:我的 Windows 工作站上的 npm 包有些问题...我的 package.json
文件中有一组 NPM 依赖项:
当我尝试运行 npm install
时,我收到了与 node-gyp
包相关的奇怪错误以及类似 \msbuild.exe
的内容。
这是错误:
c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate>如果未定义 npm_config_node_gyp (node "c:\Program Files\nodejs\node_modules\npm\bin\node-gyp -bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" 重建)否则(节点重建) 一次在此解决方案中构建项目。要启用并行构建,请添加“/m”开关。 c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate\build\validation.vcxproj(20,3):错误 MSB4019:导入的项目“c:\Microsoft.Cpp.Default. props" 未找到。请确认声明中的路径正确,并且该文件存在于磁盘上。 吉普错误!构建错误 吉普错误!堆栈错误:`C:\windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` 失败,退出代码:1 吉普错误! ChildProcess.onExit 处的堆栈(c:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:270:23) 吉普错误!堆栈在 emitTwo (events.js:87:13) 吉普错误! ChildProcess.emit (events.js:172:7) 的堆栈 吉普错误!堆栈在 Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) 吉普错误!系统 Windows_NT 6.1.7601 吉普错误!命令 "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp. js" "重建" 吉普错误! cwd c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate 吉普错误!节点-v v5.1.0 吉普错误!节点gyp -v v3.0.3 吉普错误!不好 npm WARN install:utf-8-validate@1.2.1 utf-8-validate@1.2.1 install: `node-gyp rebuild` npm WARN install:utf-8-validate@1.2.1 退出状态1 npm WARN EPACKAGEJSON evolution@1.0.0 没有存储库字段。有人可以帮助解决这个问题吗?我不是经验丰富的 Windows 用户,但目前我应该使用 Windows :(
更新:这是errors log,我每次都会更新新的 NPM 错误。
系统详情: Windows 7 Enterprice 64 位操作系统
节点版本: v5.1.0
NPM 版本: v3.3.12
Python 版本: v2.7.1
我还安装了Microsoft Visual C++ build tools(在下面的答案中提供)。 14.0版
【问题讨论】:
我检查了环境变量,一切正常。我还检查了我是否可以在 CMD 中访问 python。 Python 版本为 2.7.1。 我还使用此链接安装了 Microsoft Visual C++ 构建工具:microsoft.com/en-in/download/details.aspx?id=48159(在下面的答案中提供)。 Microsoft Visual C++ 构建工具的版本是 14 它适用于我github.com/nodejs/node-gyp#installation 【参考方案1】:在管理员命令提示符下编写这些代码:
npm install --global --production windows-build-tools
然后回车。
【讨论】:
我需要为此重新启动机器吗?我运行了那个,但仍然出现错误。【参考方案2】:您需要与 Visual Studio 一起打包的 Microsoft Visual C++ 构建工具。但是,它们现在也可作为 standalone download 使用。安装这些工具并重新启动计算机后,您应该能够在后台安装使用 node-gyp 的软件包。
【讨论】:
感谢您的回答。现在就试试。为什么在Windows下工作这么痛苦? 我安装了这个扩展,看起来它有助于解决问题。但我得到了一个与 node-gyp 相关的新...这是错误日志,我将其提交给 Git:github.com/web-jenezis/jenezis-project-bootstrap/blob/master/… 应该可以,尝试删除 node_modules 并运行npm cache clean
感谢您的回答。我这样做了,但我得到了 msbuild 工具的错误......我还用最后一个错误 (github.com/web-jenezis/jenezis-project-bootstrap/blob/master/…) 更新了错误日志。不知道为什么会发生...请您检查错误日志并尝试帮助我解决此问题
你可以试试npm i utf-8-validate --msvs_version=2015
【参考方案3】:
Windows 在管理工具中打开 PowerShell 并运行此命令
npm install --global --production windows-build-tools
【讨论】:
【参考方案4】:来自官网:https://www.npmjs.com/package/node-gyp
您应该执行以下命令:(在我的计算机中,我安装了vc2015)
$ node-gyp configure --msvs_version=2015
【讨论】:
【参考方案5】:我创建了一个issue on github for node-gyp。还有here is a disscussion 的类似问题。可能它对我没有帮助,但也许对其他人有用。
【讨论】:
以上是关于Windows 中 NPM 和 node-gyp 的问题的主要内容,如果未能解决你的问题,请参考以下文章
需要 node-gyp 的 npm install 在 Windows 上失败