[TOC] > [electron-builder打包见解 ](https://juejin.im/post/5bc53aade51d453df0447927) > [electron-builder 官网](https://www.electron.build/file-patterns#file-macros) ## 特点 * electron-builder 可以打包成msi、exe、dmg文件,macOS系统,只能打包dmg文件,window系统才能打包exe,msi文件; * 几乎支持了所有平台的所有格式; * 可以将prepackage目录(手动或使用electron-packager生成的目录)打包成安装包; * 支持[Auto Update](https://link.jianshu.com?t=https://github.com/electron-userland/electron-builder/wiki/Auto-Update); * [非常丰富的选项](https://link.jianshu.com?t=https://github.com/electron-userland/electron-builder/wiki/Options); * 支持CLI和JS API两种使用方式; ## 完整配置 基本上可用的完整的配置 ``` "build": { "productName": "ele_demo", "artifactName": "${productName}-${version}.${ext}", "appId": "com.electron.idcpj", "copyright": "Copyright © year ${author}", "directories": { "output": "dist" }, "publish": [ { "provider": "generic", "url": "https://github.com/idcpj/electron_demo/demo" } ], "dmg": { "contents": [ { "x": 410, "y": 150, "type": "link", "path": "/Applications" }, { "x": 130, "y": 150, "type": "file" } ] }, "mac": { "category": "public.app-category.developer-tools" }, "win": { "icon": "assets/img/ele.png", "target": [ "nsis" ] }, "nsis": { "oneClick": false, "allowElevation": true, "allowToChangeInstallationDirectory": true, "createDesktopShortcut": true, "createStartMenuShortcut": true, "shortcutName": "ele_图标名", "include": "script/builder.nsi" //默认省略,需要定制时,使用自定义的nsi } }, ``` ## 命令行参数(CLI) ``` electron-builder build 构建命名 [default] electron-builder install-app-deps 下载app依赖 electron-builder node-gyp-rebuild 重建自己的本机代码 electron-builder create-self-signed-cert 为Windows应用程序创建自签名代码签名证书 electron-builder start 使用electronic-webpack在开发模式下运行应用程序(须臾要electron-webpack模块支持) ``` ### Building(构建参数): ``` --mac, -m, -o, --macos Build for macOS, [array] --linux, -l Build for Linux [array] --win, -w, --windows Build for Windows [array] --x64 Build for x64 (64位安装包) [boolean] --ia32 Build for ia32(32位安装包) [boolean] --armv7l Build for armv7l [boolean] --arm64 Build for arm64 [boolean] --dir Build unpacked dir. Useful to test. [boolean] --prepackaged, --pd 预打包应用程序的路径(以可分发的格式打包) --projectDir, --project 项目目录的路径。 默认为当前工作目录。 --config, -c 配置文件路径。 默认为`electron-builder.yml`(或`js`,或`js5`) ``` Publishing(发布): ` --publish, -p 发布到GitHub Releases [choices: "onTag", "onTagOrDraft", "always", "never", undefined] `