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 依赖项:

“开发依赖”: "babel-plugin-transform-react-jsx": "^6.2.0", "babel-preset-es2015": "^6.1.18", "babel-preset-react": "^6.1.18", “咕噜”:“^0.4.5”, "grunt-babel": "^6.0.0", "grunt-contrib-connect": "^0.11.2", "grunt-contrib-jasmine": "^0.9.2", “咕噜声”:“^0.9.2”, "grunt-contrib-watch": "^0.6.1", “咕噜执行”:“^0.4.6”, "grunt-template-jasmine-requirejs": "^0.2.3", “业力铬发射器”:“^0.2.2”, “业力火狐启动器”:“^0.1.7”, “因果报应”:“^0.2.2”, "requirejs": "^2.1.22", "grunt-contrib-jshint": "^0.11.3", “咕噜声”:“^0.12.1”, “业力”:“^0.13.15”, “业力茉莉花”:“^0.3.6”, “karma-phantomjs-launcher”:“^0.2.1”

当我尝试运行 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 的问题的主要内容,如果未能解决你的问题,请参考以下文章

Windows 中 NPM 和 node-gyp 的问题

在Windows中使用NPM和node-gyp进行故障排除

需要 node-gyp 的 npm install 在 Windows 上失败

Windows npm install node-gyp 错误:libxslt 命令失败

为 npm 整数安装 node-gyp 错误

Windows 使用 node-gyp