我需要从相同的代码库生成两个应用程序(例如“pro”和“lite”版本)。这里有很多关于此的问题,但我发现没有一个涉及
node
或electron
。
我在开发中只以非常简单的方式使用了
env
,经过搜索后,我没有看到任何提及能够在已部署的应用程序中使用它们。
所以有两个任务:
1.更改应用程序名称
因此,将
package.json
文件与 electron builder
一起使用,我尝试像这样更改 productName
:
"productName": process.env.APP_NAME,
"main": "main.js",
"scripts": {
"package-mac": process.env.APP_NAME='Bingo' electron-packager . --overwrite --platform=darwin --arch=x64 --prune=true --out=release-builds"
}
但这没有用。也看到了这个结构,但它也不起作用:
"productName": '${process.env.APP_NAME}',
我是不是走错路了?
2。在运行时使用的变量
为了做“专业”和“精简”的事情,我至少需要一个标志来知道如何配置。
env
vars 无论如何都适合这个吗?
我想如果我能够更改应用程序名称,我可以在运行时访问它,但似乎我错过了所有这些重要的东西。
使用 dot-json,你可以拥有像这样的 npm 脚本:
"productName": "Bingo",
"main": "main.js",
"scripts": {
"package-mac": "echo $APP_NAME; dot-json package.json productName $APP_NAME --indent 2; electron-packager . --overwrite --platform=darwin --arch=x64 --prune=true --out=release-builds"
}
在终端中,也许你可以运行
$ APP_NAME='Bingo Pro' npm run package-mac
您可以使用
npm pkg
脚本来获取/设置 package.json 属性,它本身可用并达到确切的目的
https://docs.npmjs.com/cli/v10/commands/npm-pkg
在 package.json 中,您可以使用自定义脚本来更新
productName
,例如
"scripts": {
"build:pro":"npm pkg set productName=app-pro && electron-packager .",
"build:lite":"npm pkg set productName=app-lite && electron-packager ."
}
最后在 CICD 管道或本地计算机上使用特定脚本。