重新编译electron node-gyp常用参数详解大全

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

平时大家所使用的electron,是已经预编译好的。但是一些特殊情况下,是需要对electron的源码重新编译,以添加新的功能的。比如sqlite或者ffi等功能。这些功能的添加,都会触发electron的重新编译,进而需要设置一些参数。编译参数的正确设置,会影响到最终的编译结果。

重建electron,node-gyp常用参数详解大全

本文的关键词是:node-gyp,但是可能存在着一些变形命令。但是,无论如何,最终一定会向命令行里面,传递这些参数:dist-url/arch/target/python/msvs_version

本文测试环境:win10

因为node-gyp的正确执行,是需要正确安装[email protected][email protected]的。这个是所有一切操作的基础前提,所以,这里苏南大叔还是建议您:先查看一下下面的这个前置的环境安装篇的内容:

--dist-url

参数--dist-url指的是下载header tarball的地方,这个标准答案是:

--dist-url=https://atom.io/download/electron

但是这个标准答案中的url,在国内是很难访问到的。所以,需要替换成国内的淘宝镜像地址:

--dist-url=https://npm.taobao.org/mirrors/atom-shell

重建electron,node-gyp常用参数详解大全

苏南的大叔找到了2个淘宝的npm镜像地址:

上述两个地址中,看上去第一条/mirrors/electron和标准答案最接近。但实际上,后面的/mirrors/atom-shell才是正确答案。

--arch

这个arch参数是比较邪门的,从历史的发展上来说,大多数情况下,这个值都应该是x64。网上流行的教程里面,而且相关参数有两个,分别是:--arch--target_arch这两个值,都应该设置为x64。但是node-gyp官方只有一个参数--arch,所以--target_arch这个参数,苏南大叔认为,可能是个历史参数的兼容罢了。

另外,还需要注意node环境的arch。否则的话,即使编译成功,但是运行的时候,也很有可能会碰到如下类似的错误:

ffi.Library Error: %1 is not a valid Win32 application

重建electron,node-gyp常用参数详解大全

这个问题的解决方案就是:检查nodearch版本,需要为x64版本。卸载当前的node,然后去官网下载个x64版本的node吧。相关经验文字为:

--target

--target指的是项目目录下的electron的版本号,而不是全局的electron版本号,当然也不是什么nodejs的版本号。你可以通过执行下面这条命令,来查看确定这个值。

node_modules/.bin/electron -v

具体可以查看下面这个链接的内容:

--python

因为python2.7加入了系统路径的话,这个--python就不必设置了。如果设置,下面的是个例子:

--python = D:\Library\Python\Python27\python.exe

当然,您在npm config里面设置一下python的值,据说也是可以的。下面是个例子:

npm config set python D:\Library\Python\Python27\python.exe

这里唯一要注意的地方就是:python的路径中,可能存在的空格问题。老生常谈,这里不做多说。老程序员都知道,这个万恶的空格,如何避免。

python需要版本2.7!目前来说,python3.7是不行的!切记切记!不要做任何无谓的尝试!很多人栽倒在这个坑里面!各种奇形怪状的错误信息!

--msvs_version

--msvs_version,以目前的情况来说,恒定设置为2015字样即可,不过不排除将来会有变化的可能性。

--msvs_version = 2015

下面这个链接中,有更详细的描述信息:

更多参数

这里重建electron的方式方案很多,但是都包含着上述几个参数。那么,请重点注意好这几个参数,就可以了。如果您还使用了其他参数,可以点击这么这个连接,查看更详细的说明:

重建electron,node-gyp常用参数详解大全

以上是 重新编译electron node-gyp常用参数详解大全 的全部内容, 来源链接: utcz.com/a/118931.html

回到顶部