electron 打包配置文件
2025/8/16大约 2 分钟
关于 electron 打包的常用配置项说明
electron.config.js 配置文件详解
{
// // 应用程序ID,遵循反向域名命名规则,用于系统标识应用
appId: "com.yourcompany.yourapp",
productName: "Electron Vue Application",
icon: "public/256x256.ico",
copyright: "copyright@frontierFlight",
directories: {
// 打包输出目录
output: "release/${version}",
// 构建资源目录,存放图标等资源文件
buildResources: "build"
},
publish: {
provider: "github",
token: "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",
owner: "frontierFlight",
private: true,
updaterCacheDirName: "electron-vue-application-updater",
repo: "electron-vue-application"
},
// 需要包含在打包中的文件列表
files: [
'dist',
'dist-electron',
'public/**/*',
"!**/package-lock.json"
],
extraMetadata: {
main: "dist-electron/main/index.prod.js"
},
electronDownload: {
mirror: "https://npmmirror.com/mirrors/electron/",
strictSSL: true,
customDir: process.env.NODE_ENV === 'development' ? '33.2.0' : null
},
// 从ASAR中排除的文件,如原生模块
asarUnpack: [ // 打包时不压缩的文件,例如一些二进制文件或某些特殊的js文件等。例如:'**/*.jsc' 表示不打包所有后缀为 .jsc 的文件。
'**/*.jsc'
],
// 自定义签名脚本
sign: "./build/sign.js"
// 是否强制代码签名
forceCodeSigning: true,
afterPack: "./build/scripts/afterPack.js",
// 是否使用ASAR打包(保护源码)
asar: true,
compression: "maximum",
win: {
// 发布者名称
publisherName: "frontierFlight",
// Windows应用图标
icon: 'public/256x256.ico',
target: [
{
// NSIS安装程序
target: "nsis",
// 架构:64位和32位
arch: ['x64', 'x32']
}
],
},
mac: {
target: [
{
// // 打包为DMG安装包
target: "dmg",
// 架构:x64(Intel) 和 arm64(Apple Silicon)
arch: ['x64', 'arm64']
}
],
// 支持深色模式
darkModeSupport: true,
// Mac应用图标
icon: 'public/256x256.ico',
},
// 额外资源文件,会复制到应用根目录的resources文件夹下
extraResources: [
{
from: "build/lib",
to: "lib",
filter: ["**/*"] // 包含所有文件
}
],
// 额外文件,会复制到应用根目录
extraFiles: [
"binaries/**/*"
]
nsis: {
// 是否一键安装(true则无安装向导)
oneClick: false,
// 是否允许用户选择安装目录
allowToChangeInstallationDirectory: true,
// 是否创建桌面快捷方式
createDesktopShortcut: "always",
// 是否创建开始菜单快捷方式
createStartMenuShortcut: true,
installerIcon: "public/256x256.ico",
uninstallerIcon: "public/256x256.ico",
displayLanguageSelector: true,
perMachine: false,
// 快捷方式名称
shortcutName: "electronVueApp",
deleteAppDataOnUninstall: false,
artifactName: "${productName}-${os}-${arch}-Setup-${version}.${ext}",
// 自定义NSIS脚本
include: "build/scripts/installer.nsh"
}
}