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

重新构建electron,node-gyp如何指定msvs_version参数? - gyp-msvs-version
重新构建electron,node-gyp如何指定msvs_version参数?(图4-1)

本文测试环境:win10/node@10.15.1/node-gyp@3.8.0/electron@1.7.11

背景提示

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

错误提示

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

或者

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

重新构建electron,node-gyp如何指定msvs_version参数? - msbuild-version
重新构建electron,node-gyp如何指定msvs_version参数?(图4-2)

解决方案:

设置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参数? - gyp-ffi
重新构建electron,node-gyp如何指定msvs_version参数?(图4-3)

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

npm i --msvs_version=2015

或者:

npm config set msvs_version 2015 --global
npm i

重新构建electron,node-gyp如何指定msvs_version参数? - gyp-ffi-ref
重新构建electron,node-gyp如何指定msvs_version参数?(图4-4)

总结

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

点击下面的链接,了解更多有关node-gyp的文章吧:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron    gyp

本站的忠实读者小伙伴,正在阅读下面这些文章:

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!