在 package.json 中设置环境变量以供 electron-reload 使用?

3
我通常在macOS上开发,但为了解决一些Windows特定的问题,我将项目搬移到了Windows 10上。 我使用electron-reload在更改时重新加载应用程序。 在macOS上非常有效,但在Windows上却出现问题。
使用下面的设置,并使用npm start启动应用程序,在Windows上会抛出一个错误:"'APP__DEV' is not recognized as an internal or external command" 我做错了吗?macOS只是更"宽容"?我看到了这个问题:在package.json中设置process.env变量,并且被接受的答案看起来与我所做的相同,所以我很困惑。
在跳进兔子洞之前,我想问问我是否有什么简单的错误。
如果有影响-我没有在将项目移动到Windows时进行CTLF等转换-我只是使用DropBox复制了它。

package.json

"start": "APP_DEV=true electron .",

Main.js

let isDev = process.env.APP_DEV ? (process.env.APP_DEV.trim() == "true") : false;

if (isDev) {
    require('electron-reload')(__dirname);
}
2个回答

2

ENV_VAR=value program arguments 这种语法是 UNIX 的特性。Windows 没有提供一种同时设置环境变量并运行程序的方法,然而,这个方法通常可行:set ENV_VAR=value && program arguments(所以,在你的情况下,set APP_DEV=true && electron . 是你要找的)。作为建议,可以考虑使用 dotenv 和/或 cross-os 使你的项目在所有系统上更易用(在这方面)且不会太麻烦。


1

你尝试过将参数移动到电子命令("electron")和src位置(".")之后吗?

APP_DEV不存在:

"start": "APP_DEV=true electron ."

APP_DEV 存在:

"start": "electron . APP_DEV=true"

编辑:

上述方法无法检索环境变量,只能作为进程参数。不确定这是否能解决您的问题。

string[] argument = process.argv;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接