首页 > 解决方案 > 在 package.json 中设置环境变量以与电​​子重载一起使用?

问题描述

我通常在 macOS 上开发,但我已将项目转移到 Windows 10 以解决一些特定于 Windows 的问题。electron-reload进行更改时,我会重新加载应用程序。它在 macOS 上运行良好,但在 Windows 上就中断了。

使用下面的设置并npm start启动应用程序,在 Windows 上会引发错误:"'APP__DEV' is not recognized as an internal or external command"

我做错了吗,而 macOS 只是更“宽容”吗?我看到了这个问题:Setting process.env var in package.json和接受的答案看起来和我正在做的一样,所以我很困惑。

在我跳下兔子洞之前,我想我会问我正在做的事情是否有一些简单的问题。

如果重要的话——在将项目移动到 Windows 时,我没有对 CTLF 等进行任何转换——我只是使用DropBox.


包.json

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

主.js

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

if (isDev) {
    require('electron-reload')(__dirname);
}

标签: javascriptnode.jselectronpackage.json

解决方案


语法ENV_VAR=value program arguments是 UNIX 的东西。Windows 不提供设置环境变量并在同一命令中运行程序的方法,但是,这通常会起作用:(set ENV_VAR=value && program arguments因此,在您的情况下:set APP_DEV=true && electron .就是您要查找的内容)。作为建议,请查看dotenv和/或cross-os以使您的项目在所有系统上(在这方面)更有用,而不会让人头疼。


推荐阅读