本文将简述如何将Electron利用打包为windows安装程序。

事后筹备

  1. Node环境
  2. 装置wix (打包成msi安装程序的工具): https://wixtoolset.org/, 装置实现后,将wix的bin文件夹退出PATH环境变量。例如C:\Program Files (x86)\WiX Toolset v3.11\bin\。关上cmd,输出candle查看wix是否被退出到环境变量。
  3. 装置electron-wix-msi(调用wix将electron利用打包为msi安装程序的工具):新建一个空的文件夹,并初始化npm环境:npm init,再输出npm i --save-dev electron-wix-msi

    装置好之后在文件夹中新建一个名为pack.js的node脚本,内容为:
const {MSICreator} = require('electron-wix-msi');async function main(){  const msiCreator = new MSICreator({    appDirectory: '',    description: '形容',     exe: '',    name: '',    cultures: 'zh-cn',    shortName: "test",    manufacturer: 'test',    version: '1.0.0',    outputDirectory: '',    ui: {      chooseDirectory: true    },  });  const supportBinaries = await msiCreator.create();  await msiCreator.compile();}main().catch(err => {console.log(err)})

其中MSICreator结构器的参数请见electron-wix-msi的文档

开始打包

  1. 应用electron-packager将electron利用进行打包。在electron利用的目录下,应用指令(以64位零碎为例,如果为32位零碎,将--arch去掉即可)

    npx electron-packager ./ appname --platform=win32 --arch=x64 --asar 

    --asar参数是为了将node_modules/文件夹打包为一个文件,防止node_modules/中有过长的路径名导致打包失败,感兴趣可见参考资料。

  2. 打包胜利后,electron目录下应该有appname-win32-x64字样的文件夹,其中就蕴含有.exe程序,这个程序就是能够间接运行的。
  3. 关上之前写好的pack.js,复制appname-win32-x64绝对路径,而后将门路粘贴到appDirectory项。outputDirectory填写的是安装程序的绝对路径,例如要把安装程序放在桌面上C:\Users\ASUS\Desktop\installer。如果没有installer文件夹,脚本会主动创立。
  4. 运行node pack.js

即可打包胜利