Установка env var в пакете. json для использования с электронной перезагрузкой? - PullRequest
1 голос
/ 12 марта 2020

Обычно я работаю на macOS, но я переместил проект на Windows 10, чтобы решить некоторые Windows -специфические c проблемы. Я использую electron-reload для перезагрузки приложения после внесения изменений. Он прекрасно работает на macOS, но работает на Windows.

Используя приведенную ниже настройку и npm start для запуска приложения, на Windows выдает ошибку: "'APP__DEV' is not recognized as an internal or external command"

Я делаю это неправильно, а macOS просто более "прощает"? Я видел этот вопрос: Установка process.env var в пакете. json и принятый ответ выглядит так же, как то, что я делаю, поэтому я в замешательстве.

Прежде чем прыгнуть в кроличью нору, я подумал, что спросить, есть ли что-то не так с тем, что я делаю.

Если это имеет значение - я не делал никакого преобразования CTLF и т. д. c при перемещении проекта на Windows - я просто скопировал его, используя DropBox.


пакет. 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 ]

1 голос
/ 13 марта 2020

Синтаксис ENV_VAR=value program arguments - это вещь UNIX. Windows не предоставляет способ установить переменную окружения и запустить программу в той же команде, однако, как правило, это будет работать: set ENV_VAR=value && program arguments (так, в вашем случае: set APP_DEV=true && electron . - это то, что вы ищете) , В качестве рекомендации посмотрите на dotenv и / или cross-os , чтобы сделать ваш проект более удобным (в этом отношении) на всех системах без чрезмерной головной боли.

0 голосов
/ 13 марта 2020

Вы пытались переместить свой аргумент до тех пор, пока команда электрона ("электрон") и sr c местоположение (".")?

APP_DEV НЕ существует:

"start": "APP_DEV=true electron ."

APP_DEV действительно существует:

"start": "electron . APP_DEV=true"

РЕДАКТИРОВАТЬ:

Вышеуказанное Метод не сможет извлекаться как переменные среды, а как аргументы процесса. Не уверен, сможет ли это решить вашу проблему.

string[] argument = process.argv;
...