如何从.env文件中读取electron-builder yaml配置文件?

p3rjfoxz  于 2023-04-09  发布在  Electron
关注(0)|答案(2)|浏览(273)

我刚接触electron。我有一个用electron Package 的角形应用程序,我想用electron-builder构建包/安装程序。我正在使用electron-builder-config.yaml文件构建安装程序。
我想知道如何从.env环境文件读取值到electron-builder-config.yaml文件?
我想设置由electron-builder -w --publish always -c ./builder-config.yaml命令生成的包的版本。
我确实尝试使用buildVersion属性,但问题是有一个installer.nsh文件需要作为nsis安装程序的一部分运行以设置路径,该文件使用${version}
在electron-builder-config.yaml中,关于环境变量使用的文档非常少
我的electron-builder-config.yaml

directories:
  output: ./dist/electron
  buildResources: ./electron/build
  app: ''
electronVersion: X.Y.Z
appId:  com.sample.app
copyright: "Copyright © 2020 ${author}"
productName: TestApp
forceCodeSigning: true
artifactName: "${productName}-${os}-${version}.${ext}"
files:
  - "**/dist/electron/*"
  - "**/electron/*"
asar: true
compression: maximum
mac:
  category: public.app-category.reference
  icon: "./icon-file.icns"
  publish: [{
      "provider": "generic",
      "url": "http://localhost:8080"
  }]
dmg:
  background: "./build/sample.jpg"
  icon: "./build/nw.icns"
  iconSize: 96
  contents:
    - x: 650
      y: 230
      type: link
      path: /Applications
    - x: 350
      y: 230
      type: file
win:
  cscLink: "./somelink.pfx"
  cscKeyPassword: "XXXXXX"
  target: [nsis]
  icon: "./appinfo.ico"
  publish: [{
      "provider": "generic",
      "url": "http://localhost:8080"
  }]
msi:
  shortcutName: "TestApp - ${version}"
  createDesktopShortcut: true
  createStartMenuShortcut: true
nsis:
  include: "./installer.nsh"
  installerIcon: "./appinfo.ico"
  uninstallerIcon: "./appinfo.ico"
  packElevateHelper: true
  allowToChangeInstallationDirectory: true
  perMachine: true
  oneClick: false
  createDesktopShortcut: true
  createStartMenuShortcut: true
  shortcutName: "TestApp - ${version}"
  guid: "someguid"
npmRebuild: true
nodeGypRebuild: false

此外,我不确定宏${ext}。这个electron-builder-config.yaml文件是从哪里获取这个值的?即使在文件宏的文档中,版本也没有明确的定义。有什么建议吗?

2izufjch

2izufjch1#

我把它弄明白了。万一别人在寻找这个问题的答案,下面是我是如何让它工作的。

第一步:在您的package.json所在的根级别创建一个名为electron-builder.env的文件,请确保文件名为electron-builder.env
**第二步:**在electron-builder.env文件中定义你想要的变量,例如 ELECTRON_BUILD_VERSION=99.99
**第三步:builder-config.yaml文件中,使用语法{env.ELECTRON_BUILD_VERSION}**访问环境变量

给你,玩得开心,编码快乐😊

sz81bmfz

sz81bmfz2#

对于那些想直接读取env文件的人,使用dotenv包:

npm i dotenv
// Inside the main process file
require('dotenv').config();
const GOOGLE_CLOUD_API_KEY = process.env.GOOGLE_CLOUD_API_KEY

相关问题