javascript - 为不同的环境构建 Electron

标签 javascript node.js typescript electron electron-builder

嗨,

我有一个 Electron 应用程序,当前我要在其中一个文件中手动编辑一个URL,具体取决于要构建的环境(开发,生产,测试)。但是我想在我的脚本中定义它,这样我就不必每次都重写URL(例如electronic-builder -w --x64 --ia32 --test之类的东西)。

据我所知,可能有不同的构建文件(https://github.com/electron-userland/electron-builder/issues/1109),但我不太清楚应该如何设置,而且我也无法弄清楚如何从构建文件中获取属性(例如build/publish/url)。似乎可以获取图标和名称(https://github.com/electron-userland/electron-builder/issues/639),但不能获取url吗?

package.json

    {... ,
      "build":{
        ... ,
        "publish":[{
          ... ,
          "url": "https://my.website.url" <--- Change on build and fetchable in code?
        }],
      }
    }


很抱歉,如果我错过任何事情-一旦考虑到这一点,我考虑在某个地方写一个明确的教程。

提前致谢

最佳答案

这些解决方案不是很好,但是仍然可以帮助您:

事先准备不同的配置文件

根据您的平台或口味,准备不同的YAML配置,并在构建之前将它们复制到electron-builder.yml

动态创建构建配置

这对于更复杂的设置更有效:

准备一个YAML或其他任何东西,其中包含对每个平台都适用的所有配置,以及要在构建时更改的模拟值(或将其保留为空)。我为此使用YAML文件,因为如果我想要新的东西,可以将其复制粘贴到electron-builder.yml中,但是您最清楚自己需要什么。

在构建之前,请运行以下 Node 脚本:

  • 如果存在
  • ,则可以选择从以前的版本中删除旧的electron-builder.yml
  • 读取准备好的配置文件
  • 用读取数据中的真实信息替换模拟值
  • 将修改后的数据
  • 写入electron-builder.yml
    然后,您的npm脚本将类似于node prepareYml.js && electron-builder

    关于javascript - 为不同的环境构建 Electron ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60091130/

    相关文章:

    javascript - mongodb - 展开嵌套子文档

    javascript - 根据选择选项显示/隐藏 div

    javascript - 添加到 JavaScript 对象类的方法在遍历给定对象时出现

    html - 如何在 Angular 中自动滚动?

    javascript - onmouseout 无法按需工作

    javascript - 来自 DOM 节点对象的 JQuery 对象上的 .children().innerHtml 返回未定义

    javascript - 在 Meteor 中获取被点击的元素?

    python - 我无法在全局范围内从 process.stdout.on 获取数据

    TypeScript 条件类型和 typeof

    javascript - 在 NestJS 中通过依赖注入(inject)导入 TypeScript 模块