【问题标题】:Env vars to change app name in project.json and set runtime vars?环境变量更改 project.json 中的应用程序名称并设置运行时变量?
【发布时间】:2019-11-14 14:43:46
【问题描述】:

我需要从同一个代码库(例如“pro”和“lite”版本)生成两个应用程序。这里有很多关于此的问题,但我发现没有一个涉及nodeelectron

我只在开发中以非常简单的方式使用了env,经过搜索,我没有看到任何提及能够在部署的应用程序中使用它们。

所以有两个任务:
1.更改应用名称

因此,使用带有electron builderpackage.json 文件,我尝试像这样更改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 变量是否适合这个?

我想如果我能够更改应用名称,我可以在运行时访问它,但似乎我错过了所有这些重要的东西。

【问题讨论】:

  • 据我所知,您必须构建一个 shim/pass-through 程序,该程序将根据输入交替版本。 a.e. .bat 文件或单独的 node 应用程序将确定并以不同方式运行构建。这是因为它启动并运行分发时不涉及 JS,都是配置,所以在配置中设置标志 in 是不可能的。

标签: javascript node.js electron electron-builder electron-packager


【解决方案1】:

使用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

【讨论】:

  • 感谢您的回复。我无法让它工作 - 从dot-json 获得"Usage" 手册页。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2020-04-06
  • 2012-06-08
  • 2017-11-14
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多