Windows中的Node.js环境可以在服务器启动之前设置,如下所示:
set NODE_ENV=production
这个NODE_ENV
参数可以在Node.js或electron中由process.env.NODE_ENV
使用。
但是当我使用electron-builder
构建electron时,就像这样:
electron-builder build --windows
如何设置环境变量?
更新:
可能是我不能通过electron-builder
将固定的环境变量传递给可执行文件。
也许你只能手动加载一个环境文件,在打包时修改它,或者将参数预设为dev
状态。当没有状态时,它是production
。
2条答案
按热度按时间sr4lhrrt1#
如果您希望在运行时设置环境变量,您可以手动设置它们,也可以使用其他工具,如
dotenv
https://www.npmjs.com/package/dotenv但最简单的方法是在运行二进制文件时设置它们。您可以使用批处理脚本(如果是windows),例如:
一行程序版本可以是
set NODE_ENV=production && .\binaries.exe
Linux下的工作方式相同:设置变量,然后运行。
cyej8jka2#
我张贴这篇文章是希望它能帮助其他处于我这种情况的人。我有三个环境(开发、暂存和生产),我希望我的Electron * 主进程 * 知道它在哪个环境上运行。
现在,对于开发来说,使用CLI将环境变量暴露给Electron内联是非常容易的:
然后,Electron的主进程可以像这样访问这个环境变量:
然而,能够区分临时环境和生产环境稍微有点棘手。我的staging和生产环境都是使用
electron-builder
打包和部署的,package.json
脚本如下所示:因此,我的解决方案是将环境暴露给Electron main 进程,以进行阶段化和生产,如下所示:
1.通过命令行调用将
NODE_ENV=staging
或NODE_ENV=production
设置为electron-builder
:1.在我的
electron.config.js
文件(electron-builder
的配置)中,使用extraMetadata
参数(docs)将变量注入到我的package.json
中:1.然后你可以从你的Electron主进程访问它: