1

我正在尝试安装 npm 模块scrypt

我知道 scrypt 需要 node-gyp,我在全球范围内安装了它(几次)。我也知道 node-gyp 需要 python 2.7 和 MS Build Tools。我安装了最新的 python 2.7 版本并安装了 MS Build Tools。我也尝试使用 VS Community Edition 2017。我尝试修复并重新安装两者。

我还成功安装了 npm 包windows-build-tools(几次)。

但是我尝试npm i scrypt了以下错误:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v141 (Platform Toolset = 'v141')找不到。要使用 v141 构建工具进行构建,请安装 v141 构建工具。或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重新定位解决方案”来升级到当前的 Visual Studio 工具。[c:\project\node_modules\scrypt\build\copied_files.vcxproj] C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5):错误 MSB8020:找不到 v141(平台工具集 = 'v141')的构建工具。要使用 v141 构建工具进行构建,请安装 v141 构建工具。或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重新定位解决方案”来升级到当前的 Visual Studio 工具。[c:\project\node_modules\scrypt\build\scrypt_wrapper.vcxproj]

有什么提示或建议吗?

4

3 回答 3

1

又过了几个小时,我发现有一个旧的 Visual Studio 2015 安装。我必须先卸载它。我不知道,为什么不使用最新的构建工具实例。

在此之后,将 Node 降级到 v8,可以再次安装和编译 scrypt。

于 2018-11-29T16:54:19.997 回答
1

我猜想为卸载旧版 Visual Studio 安装的 smonkey 解决的问题是,卸载过程还从 %PATH% 中删除了旧的 MSBuild 路径。

因为对我来说,只需从路径中删除旧的 MSBuild.exe 即可修复它。node-gyp路径上不需要 MSBuild,但如果路径上存在一个对于构建目标来说太旧的路径,它就会被绊倒。

所以要么删除你的 MSBuild 路径,要么确保它指向最新版本。当然,除非您无论如何都想卸载 Visual Studio,但这不是某些人的选择。

于 2019-01-22T01:59:41.190 回答
1

刚遇到这个问题。删除(或取消设置) VCTargetsPath 系统变量为我修复了它。我认为它是由以前的 VS2015 安装创建的,但删除 VS2015 并没有删除该变量。

(Ken Pespisa 已经在评论中发布了此内容,但我在之前访问此页面时错过了它。我将其添加为答案,以便人们更容易找到它。)

于 2020-04-08T21:09:24.410 回答