【问题标题】:Setting an env var in package.json for use with electron-reload?在 package.json 中设置环境变量以与电​​子重载一起使用?
【发布时间】:2020-06-24 19:18:17
【问题描述】:

我通常在 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 将其复制过来。


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);
}

【问题讨论】:

    标签: javascript node.js electron package.json


    【解决方案1】:

    您是否尝试过将参数移动到电子命令(“electron”)和 src 位置(“.”)之后?

    APP_DEV 不存在:

    "start": "APP_DEV=true electron ."
    

    APP_DEV 确实存在:

    "start": "electron . APP_DEV=true"
    

    编辑:

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

    string[] argument = process.argv;
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-14
        • 2017-04-09
        • 2016-07-14
        • 2016-03-29
        • 2018-03-18
        • 1970-01-01
        • 2016-01-03
        • 2016-04-11
        相关资源
        最近更新 更多