运行需要进行node-gyp重建的 npm install
时,会抛出以下构建错误:
MSB8020:找不到v120(Platform Toolset ='v120')的构建工具 . 要使用v120构建工具进行构建,请安装v120构建工具 . 或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重新定位解决方案”来升级到当前的Visual Studio工具 .
系统信息
-
Windows 10(x64)
-
Visual Studio 2015
-
node v0.12.7
-
npm v2.11.3
-
node-gyp v2.0.1
5 回答
tl;博士
使用msvs_version参数:
npm install --msvs_version=2015
如果msvs_version参数不起作用怎么办?
如果msvs_version参数不起作用,可能是因为您没有安装Visual C 2015构建环境 .
安装Visual C构建环境
选项1:Visual Studio 2015
在VS2015安装期间,选择"Custom" . 或者,如果您've already installed VS2015, go to Windows' "Uninstall or change a program">从列表中选择VS2015>单击"Change">单击"Modify"
检查"Common Tools for Visual C++ 2015"选项,"Programming Languages"> "Visual C++"
完成VS2015安装
选项2:Visual C Build Tools 2015
作为VS2015的替代方案,您可以安装Microsoft发布的Visual C++ Build Tools 2015:
在VC安装期间,选择"Custom"
检查"Windows 8.1 SDK"和"Windows 10 SDK"选项
完成VC安装
使用msvs_version
现在已经安装了Visual C 2015构建环境,您可以通过msvs_version参数告诉npm使用它:
打开PowerShell
使用msvs_version参数:
npm install --msvs_version=2015
配置选项(不是必需的)
(可选)不是在命令提示符下指定msvs_version,而是将npm配置为始终包含msvs_version参数,方法是将其添加到npmrc或package.json:
npmrc
打开PowerShell并运行
npm config set msvs_version 2015
,它会将此参数添加到您的用户npmrc文件中 . 此后,每次运行npm install
时,作为此用户,将自动包含msvs_version=2015
parampackage.json
修改项目的package.json文件以包含:
此后,每次运行
npm install
时,对于此项目,将自动包含msvs_version=2015
param文章修订
经过Chuck关于v120工具集的评论启发后进一步调查的步骤(感谢@ChuckWalbourn)
添加了配置选项
添加了VC Build Tools选项
更新了VC Build Tools链接以供正式发布
我想在2Toad的答案中添加注释,但stackoverflow不允许我 . 您可以使用以下命令全局设置msvs_version:
这可以节省您将其放在每个项目配置对象中 .
我将分享这个答案,因为没有其他修复解决了我的问题 . 我有相同的错误,但设置msvs参数:
npm install --msvs_version=2015
没有解决问题 . 无论我做了什么,我都能看到它在工具集的错误位置 .
简而言之,我了解到MSBuild现在已与Visual Studio打包在一起,不再与.NET打包在一起 . 果然我在PATH变量中有这个条目:
因此调用了错误的(旧的)MSBuild版本 . 我删除了这个条目并添加了以下与VS2015相关的路径:
问题解决了 .
我已经花了2天时间安装所有VS版本......
返回所有错误:
运用
返回很多警告,编译但之后无法正常工作 .
这是我使用npm模块时最糟糕的经历 . 多么浪费时间:/
将版本设置为2015对我没有帮助 . 请尝试将其设置为2013:
npm config set msvs_version 2013
要么
npm config set msvs_version 2015