我需要在构建时将.env
文件放入打包的应用程序中,然后将.env
中的变量附加到process.env
中。我把.env
和package.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
)
是否有一个例子或最佳实践,如何把环境变量,而包建设?
1条答案
按热度按时间ttp71kqs1#
dotenvExpand
成功了。