electron 01 编译 (vs2017 windows10)

01 环境

按照官网说明
http://electronjs.org/docs/development/build-instructions-windows
需要安装
Visual Studio 2017
Python 2.7
Node.js
Git

如果编译libchromiumcontent,要下载chromium源码。需要vpn。参考
https://blog.csdn.net/longji/article/details/54632083

02 编译electron

02.01 代码下载

:: 代码下载比较快
git clone https://github.com/electron/electron.git
cd electron
:: 迁出最新的相对稳定版本, tag:v3.0.0-beta.3,目前稳定版本是2.0.5(git tag)
git checkout -b b3.0.0-beta.3 v3.0.0-beta.3

Bootstrap 脚本也是必须下载的构建依赖,来创建项目文件. 需要注意的是我们使用ninja创建 Electron,这样的话就不需要生成 Visual Studio 项目了。

:: 如果本地有多个python环境,把python2.7的环境变量设置到最前面
:: 
set PATH=C:\python\Python27;C:\python\Python27\Scripts;%PATH%
cd electron
# 因为这个bootstrap.py是带.py后缀的,所以前面不带python也可以。
# script\bootstrap.py -v 的运行时间稍微长一下,要下载vendor依赖。这个命令会生成 ./out目录
python script\bootstrap.py -v
# 为了生产vs工程,带--msvs 不会生成.\out目录,只会生成msvs的项目文件和.sln文件
# python script\bootstrap.py -v --msvs

这个过程会下载electron的node_modules 和libchromiumcontent.tar.bz2,libchromiumcontent-static.tar.bz2 压缩包(较大:2.3GB,包含libchromiumcontent的编译静态库和动态库)。
libchromiumcontent.tar.bz2解压到 electron\vendor\download\libchromiumcontent\shared_library。
libchromiumcontent-static.tar.bz2解压到 electron\vendor\download\libchromiumcontent\static_library。
带 –msvs,会多下载 directxsdk-x64,解压到 electron\external_binaries。

02.02 编译celectron

:: 构建 Release 和 Debug 目标:先编译Release目标,再编译Debug目标。
:: 默认是先编译 out\R,在编译 out\D;
:: 最后link electron.exe 的时间比较长: [1232/1232] LINK_EMBED electron.exe
python script\build.py

如果指定输出路径,最好修改一下script\build.py。把config[0]修改为config。
这样用python script\build.py -c subdir的形式指定subdir.最终的结果会输出到out\subdir下。

build_path = os.path.join('out', config[0])
:: 修改为
build_path = os.path.join('out', config)
:: 如下命令,会使用ninja编译目标Debug_x64
python script\build.py -c Debug_x64
:: 可以指定编译版本--target_arch=ia32  --target_arch=x64
python script\bootstrap.py -v --target_arch=ia32

清理
执行清理动作一定要确认确实要清理,重新编译一遍蛮耗时的。

:: 清理构建文件:
npm run clean
:: 清理 out 和 dist 目录:
npm run clean-build

03 编译 libchromiumcontent

使用已经下载的chromium代码。避免重复下载

libchromiumcontent编译需要下载chromium源码。如果已经下载完整版本的chromium,可以把完正的chromium\src拷贝到electron\vendor\libchromiumcontent目录下。

官网说明文档:https://electronjs.org/docs/development/upgrading-chromium

03.01 获取代码

# **因为前面下载electron代码,已经下载了libchromiumcontent。所以不用执行代码获取。
# **如果要向独立换个目录,那就重新获取一下。
# 官网说明里,使用git协议获取,需要公钥
# git clone [email protected]:electron/libchromiumcontent.git
# 这里修改为https协议获取
git clone https://github.com/electron/libchromiumcontent.git
cd libchromiumcontent
git checkout -b belectron-3.0.0-beta.3 electron-3.0.0-beta.3
python script\bootstrap -v --msvs

03.02 指定更新的chromium源码版本

访问 https://omahaproxy.appspot.com/,查看自己想要的chromium版本。目前稳定版本67.0.3396.99。beta版本68.0.3440.68。这里使用68.0.3440.68。
手动修改electron\vendor\libchromiumcontent\VERSION里的版本号为68.0.3440.68,保存即可。

03.03 下载chromium代码

采用10MB的vpn大约需要3.5小时。vpn搭建参考https://blog.csdn.net/longji/article/details/54632083。vpn扩充带宽,从2MB扩充到10MB,目前腾讯cvm 1天大17.5元。
运行更新语句:

python script\update

如果已经有下载好的chromium代码,直接拷贝到electron\vendor\libchromiumcontent目录即可。只拷贝src目录全部到libchromiumcontent目录内即可。

猜你喜欢

转载自blog.csdn.net/longji/article/details/81153532