NODE_ENV показывает неопределенный, хотя я установил переменную среды

1

Я использую webstorm, и я попытался установить переменную среды, используя

set NODE_ENV=development

и когда я проверяю переменную for для среды, используя

echo%NODE_ENV%

Я получаю развитие в качестве ответа.

Но в моем приложении-узле, когда я проверяю переменную, используя

 var b= process.env.NODE_ENV;

я получил

b:undefined

Я даже попытался использовать следующее в файле package.json

"start": "set  node ./bin/www && NODE_ENV=production "

все равно я становлюсь неопределенным. Я не знаю, в чем проблема.

Теги:

4 ответа

0
Лучший ответ

Вместо этого используйте экспорт

"start": "export NODE_ENV=production && node./bin/www"

  • 0
    это не работает.
  • 0
    Какая версия узла у вас есть? $node -v
Показать ещё 4 комментария
3

Сначала вы должны установить переменную, а затем запустить скрипт:

"start": "set NODE_ENV=production&& node ./bin/www"

Обратите внимание, что это будет работать только в Windows. Если вы хотите использовать кросс-платформенное решение, используйте пакет cross-env:

cross-env NODE_ENV=production node ./bin/www
  • 0
    я попробовал, что сначала это не сработало, поэтому я переключил их, но все еще не работает
  • 0
    @PuskarShestha Вы можете попробовать пакет cross-env .
Показать ещё 6 комментариев
0

Если у вас есть отдельный файл config.js, убедитесь, что он первый. У вас может быть состояние гонки.

Вчера я столкнулся с чем-то подобным. Это может быть или не быть вашей проблемой. Когда я запускал свой код, моя переменная окружения была не определена. Я переместил всю библиотеку в отдельный модуль. Мне нужен этот модуль. Моя проблема заключалась в том, что мои требования были не в порядке, поэтому, когда он спросил, он еще не был установлен. Я переместил свой файл config.js, требуемый выше моего пакета библиотеки.

0

Следующее - это то, что работает для меня, поскольку моя цель - поддерживать зависимость пакета от того, что мне действительно нужно:

"startwin": "SET NODE_ENV=production& SET SOME_TOKEN=123abc& node ./bin/www",
"start": "NODE_ENV=production SOME_TOKEN=123abc node ./bin/www" 

Недостатком является каждый раз, когда требуется другое окружение var, у меня есть 2 места для редактирования, но это вряд ли усиливает (по крайней мере, в моем случае, ваш может быть другим).

  • 0
    спасибо за ответ, но я все еще не определен
  • 0
    я попробовал эту программу в коде VS и написал следующее в powershell. $ env: NODE_ENV = "разработка"; узел www. это похоже на работу. но он не работает в веб-шторме

Ещё вопросы

Сообщество Overcoder
Наверх
Меню