electron 把env文件,而建设在电子 Package 的应用程序

sg2wtvxw  于 2023-06-20  发布在  Electron
关注(0)|答案(1)|浏览(165)

我需要在构建时将.env文件放入打包的应用程序中,然后将.env中的变量附加到process.env中。我把.envpackage.json放在同一个目录下,当我从npm启动electron时,它就可以工作了。当我构建一个MacOS应用程序并启动它时,它不会工作(似乎.env文件丢失了)。
我的main.js启动了一个java后端,所以我提供了环境变量:

// This works in npm start, but not for packed app
process.env.MY_VAR = dotenv.config().parsed.MY_VAR;

this.serverProcess = require("child_process").spawn(
    "/usr/bin/env",
    ["sh", dirname + "/server/bin/embedded"],
    { env: process.env });

我的情况是:

  • 生成.env并将其放入电子文件夹(由构建系统自动生成)
  • 建立电子和 Package 电子
electron-builder --mac --publish never
  • 启动MacOS应用程序
  • 打包的应用程序应该在提供的环境中运行java(来自.env

是否有一个例子或最佳实践,如何把环境变量,而包建设?

ttp71kqs

ttp71kqs1#

dotenvExpand成功了。

const dotenvExpand = require("dotenv-expand");

if (process.resourcesPath) {
    dotenvExpand.expand(dotenv.config({ path: path.join(process.resourcesPath, ".env") }));
}

相关问题