繁体   English   中英

为不同环境构建 Electron

[英]Build Electron for different environments

哎呀,

我有一个电子应用程序,我目前在其中一个文件中手动编辑 URL,具体取决于我希望为其构建的环境(开发、生产、测试​​)。 但是我更愿意在我的脚本中定义它,这样我就不必每次都重写 URL(例如 electron-builder -w --x64 --ia32 --test 或类似的东西)。

据我所知,可以有不同的构建文件( https://github.com/electron-userland/electron-builder/issues/1109 ),但我不太清楚应该如何设置,并且此外,我无法弄清楚如何从构建文件(例如构建/发布/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中,以防我想要一些新的东西,但你最清楚你需要什么。

在构建之前,您运行一个节点脚本:

  • 如果存在,可以选择从以前的构建中删除旧的electron-builder.yml
  • 读取准备好的配置文件
  • 用读取数据中的真实信息替换模拟值
  • 使用修改后的数据写入electron-builder.yml

你的 npm 脚本看起来像node prepareYml.js && electron-builder

我找到了一个(虽然有点hack'ish imo)解决方案,我现在将使用它。

我只是在构建脚本中添加了“--c.extraMetadata.productName=dev-”(和 test 而不是 dev 用于测试构建),然后在我的代码中,我将检查哪个环境已经预先添加到构建中,并且相应地切换 URL。 这种方法的好处是现在我还可以看到 .exe 文件指向哪个环境!

我仍然相信“正确”的方法是拥有多个 YAML 文件,就像 Rhayene 建议的那样,但上面的方法似乎更容易,更直接地控制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM