Electron-builder打包安装程序遇到的问题解决方案
这里 最近使用Electron制作桌面应用,被科学上网好好的教训了一遍。即使使用代理工具,有些资源也下载不了。
在安装Electron时,会运行一个下载脚本,下载Windows,Linux,macOS三大平台编译运行的资源文件。npm install -g electron时候会一直停留在下载处,直到提示超时。此时退出安装应用,不会影响程序应用的开发。
Electron安装时下载的脚本文件如下:
下载的文件为:Windows环境下: electron-v1.8.0-win32-x64.zip(v1.8.0为Electron的版本号),Linux环境下:electron-v1.8.0-linux-x64.zip
,MacOS环境下:electron-v1.8.0-mas-x64.zip
下载网速如下(无论浏览器下载还是脚本下载):
因为不是npm包,cnpm也无效。翻阅Electron源码,找到下载地址如下: https://github.com/electron/electron/releases/download/v1.7.6/electron-v1.7.6-win32-x64.zip,
https://github.com/electron/electron/releases/download/v1.7.6/electron-v1.7.6-linux-x64.zip,https://github.com/electron/electron/releases/download/v1.7.6/electron-v1.7.6-mas-x64.zip。(后续还有多个依赖包都有此类似问题)。
这类需要下载资源的工具,一般都会检查本地缓存,检测机制是判断安装的工具的版本与本地缓存的资源版本是否一一对应,不是则重新下载对应版本的资源包。为此,我使用了一台新加坡的服务器,通过wget工具下载到服务器,然后使用FTP工具把资源下载到电脑上。那么问题来了。缓存目录是在哪里?还是要翻阅代码(有更好的方法清告知),源码里面使用electron-download模块下载资源,这里就是缓存地址。
checkForCachedZip是检测缓存是否存在,用console.log打印,就是缓存地址。
将手动下载后的资源包下载到该目录,就解决了资源包下载问题。因为不是软件BUG,所以没有办法提issue。或者可以自己维护一个electron分支,提供国内下载。
后续编译成安装包还需要是三个资源
同样是翻阅electron-builder源码找到缓存目录为C:\Users\电脑名称(注意更换自己的电脑名称)\AppData\Local\electron-builder\cache
安装方法同理