【发布时间】:2020-10-30 22:25:09
【问题描述】:
我正在构建一个 Electron 应用程序,并创建了一个用 Go 编写的小型守护程序二进制文件,它将与应用程序一起打包为 extraResource。但是,根据平台的不同,需要打包此二进制文件的不同版本,具体而言,agent.exe 用于 Windows,agent 用于 MacOS,而对于 Linux,文件名与 Mac 相同。
我的项目根目录的bin 目录中有这些二进制文件:
├── bin/
│ ├── windows/
│ │ └── agent.exe
│ ├── mac/
│ │ └── agent
│ ├── linux/
│ │ └── agent
测试 Windows,我包含了 bin/windows 目录,它工作正常(资源目录中的 exe 包如预期的那样)
这是我的 package.json 的相关片段
"build": {
"win": {
"icon": "build/app.ico",
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
]
},
"nsis": {
"include": "build/installer.nsh",
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"license": "build/eula.txt",
"installerIcon": "build/app.ico",
"artifactName": "...",
"shortcutName": "..."
},
"extraResources": [
"bin/windows/agent.exe"
]
}
可以这样做吗?就像现在一样,我必须通过在不同平台构建之间更改 extraResources 值来编辑 package.json 文件,这显然是不理想的(因为我可能会忘记并最终通过忘记包含错误的二进制文件改回来)。
请注意,我不支持 32 位 Windows,因此所有 Windows 版本都将包含相同的(64 位)二进制文件。
我正在使用电子生成器 19.50.0
【问题讨论】:
标签: javascript electron electron-builder