重新编译electron node-gyp指定msvs_version参数

本文转载自:https://newsn.net/

书接上文,node-gyp的参数里面有个--msvs_version,这个参数是最终成功编译成功的重点之一。其实,如果简单的说的话,目前的情形下,这个值直接设置为2015就可以满足要求了。那么,如果您想知道更多的详细信息,就可以继续阅读本文的内容,本文就是对--msvs_version=2015这个规则的展开发散说明。

重新构建electron,node-gyp如何指定msvs_version参数?

本文测试环境:win10

背景提示

本文的技术背景是:正确安装了node-gyp所需要的cpp编译器。前置阅读文章是:

错误提示

MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "4.0"。

或者

MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "14.0","4.0"。

重新构建electron,node-gyp如何指定msvs_version参数?

解决方案

设置node-gyp命令的参数,增加--msvs_version=2015字样即可,上述问题即可解决。不出意外的话,在一阵黄色警告信息翻滚之后,就可以编译成功了。

node-gyp --msvs_version=2015 ............

当然还是有其他参数的,为了突出显示参数--msvs_version=2015,其他的参数就暂时隐藏掉了。

特殊的msvs_version使用方式一

下面的是特殊使用方式,和普通的设置--msvs_version的方式,有些不同。

npm config set msvs_version 2015 --global

node-gyp rebuild --target=1.7.11 --arch=x64 --target_arch=x64 --dist-url=https://npm.taobao.org/mirrors/atom-shell

上面的两条命令就相当于下面的一条命令:

node-gyp rebuild --target=1.7.11 --arch=x64 --target_arch=x64 --dist-url=https://npm.taobao.org/mirrors/atom-shell --msvs_version=2015

上面的命令就是说,可以把msvs_version设置成全局的值,在后续的命令中,就不必再次指定了。

特殊的msvs_version使用方式二

如果是在package.json里面定义了ffi等依赖的话,

重新构建electron,node-gyp如何指定msvs_version参数?

那么安装命令的一个变形可能是:

npm i --msvs_version=2015

或者:

npm config set msvs_version 2015 --global

npm i

重新构建electron,node-gyp如何指定msvs_version参数?

总结

本文说的似乎比较多,其实中心思想就一条:把msvs_version设置为2015即可。当然,这句话的前提也是你真正的安装好了cpp编译器。在将来的代码发展中,这个2015的字样,可能会变成2017/2020之类的字样,或者干脆消失不见,这都是有可能的。

以上是 重新编译electron node-gyp指定msvs_version参数 的全部内容, 来源链接: utcz.com/a/118936.html

回到顶部