使用electron-packager打包exe文件

Posted on 2018-05-04 |    

electron的项目写的差不错了,要打包成exe文件咯。

安装

在文件主目录下安装 electron-packager

1
npm install electron-packager --save-dev

在package.json里添加"packager",设置成如下

1
2
3
4
5
"scripts": {
"start": "electron .",
"test": "echo \"Error: no test specified\" && exit 1",
"packager": "electron-packager . outapp --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/img/favicon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Electron Tutorial App\" --electron-version=1.6.2"
}
  • platform:设置平台,window,linux还是Mac
  • arch:x84还是x64,
  • outapp的位置可以替换成你打包后的exe名字
  • electron-version:electron的版本,必须要指定,这里设置为1.6.2
  • icon 图标地址

之后运行即可

1
npm run packager

第一次打包会慢一点,要去下载electron-version对应的版本的electron

可能报错的几种情况及对应方案

  1. 出现以下报错:
    electron ELOOP: too many symbolic links encountered
    解决方案:将node_modules文件删掉,然后用npm install重新安装依赖包,不要用cnpm安装

  2. electron打包只会打包dependencies中的依赖包,如果文件中用到了devDependencies,之后可能会报错,找不到对应的模块。

  3. 在打包好后,打开exe文件,出现如下错误:
    Uncaught Exception: TypeError: Error processing argument at index 0, conversion failure from assets/img/logo.jpg
    原因在 tray的图标应该设置成绝对路径,不要用相对路径。

1
2
var iconPath = path.join(__dirname,'assets/img/logo.jpg')
appIcon = new Tray(iconPath);

好啦,愉快的使用