Подтвердить что ты не робот

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

Я пытаюсь настроить среду для приложения Node.js. но я получаю эту ошибку каждый раз.

"NODE_ENV" не распознается как внутренняя или внешняя команда, действующая команда или пакетный файл.

Что это значит и как я могу решить эту проблему?

Я использую Windows, а также попытался set NODE_ENV=development но не повезло.

4b9b3361

Ответ 1

Похоже, ваша ошибка возникает из-за попытки запустить что-то вроде этого (что работает в Linux)

NODE_ENV=development node foo.js

эквивалент в Windows будет

SET NODE_ENV=development
node foo.js

работает в той же командной оболочке. Вы упомянули, что NODE_ENV не работает, но неясно, как/когда вы его выполнили.

Ответ 2

для окон используется & между командами. Как,

  "scripts": {
    "start": "SET NODE_ENV=development & nodemon app/app.js",
  }

Ответ 3

Я написал для этого модуль: win-node-env.

Он создает NODE_ENV.cmd, который устанавливает переменную среды NODE_ENV и порождает дочерний процесс с остальной частью команды и ее аргументами.

Просто установите его (глобально) и запустите свои команды npm script, он должен автоматически заставить их работать.

npm install -g win-node-env

Ответ 4

  • npm install "cross-env".
  • измените код как cross-env NODE_ENV=development node foo.js. Затем вы можете запустить как npm run build.

Ответ 5

Используйте win-node-env, для этого просто запустите команду ниже на вашем cmd или power shell или git bash:

npm install -g win-node-env

После этого все как в Linux.

Ответ 6

set NODE_ENV=production & nodemon app/app.js

приведет к тому, что NODE_ENV будет содержать пробел в конце:

process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true

Как уже упоминалось в комментарии здесь, используйте это вместо:

NODE_ENV=production&& nodemon app/app.js

Ответ 7

npm install -S cross-env

Работал для меня

Ответ 8

Большинство ответов там не помогли мне..

Что мне помогло, так это NODE_ENV=production&& nodemon app/app.js

Обратите внимание на пространство. Удачи.

Ответ 9

Для тех, кто использует Git Bash и имеет проблемы с npm run <script>,

Просто установите npm, чтобы использовать Git Bash для запуска скриптов

npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe" (изменить путь в соответствии с вашей установкой)

И тогда npm запустит сценарии с Git Bash, поэтому такие NODE_ENV= как NODE_ENV= будут работать правильно.

Ответ 10

Для окон откройте git bash и попробуйте

NODE_ENV=production node app.js

Ответ 11

Если кто-нибудь пришел сюда, как я, пытаясь найти решение для ошибки:

'env' is not recognized as an internal or external command

Причина, по которой я это получил, заключается в том, что я переносил угловое решение с компьютера для разработки Mac на рабочий стол Windows 10. Вот как я это решил.

  1. запустите npm install --save-dev cross-env

  2. перейдите в мой файл package.json и измените все ссылки на сценарии с env <whatever> на cross-env <whatever>

Затем мои команды, такие как: npm run start:some_random_environment_var теперь отлично работают в Windows 10.

Ответ 12

Изменение ваших сценариев под Windows - это королевская боль. Попытка выяснить соответствующие переводы для Windows и поддержка двух наборов сценариев - это не способ жить своей жизнью.

Настроить npm для использования bash в Windows намного проще, и ваши скрипты будут работать как есть.

Просто запустите npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe". Убедитесь, что путь к исполняемому файлу bash правильный для вашей машины. Вероятно, вам нужно будет запустить новый экземпляр терминала, чтобы изменения вступили в силу.

Снимок экрана ниже иллюстрирует преимущества.

  1. нпм ERR! при попытке запустить скрипт изначально.
  2. Скрипт, модифицированный для использования Windows, запускается, но не показывает ответное сообщение.
  3. После обновления конфигурации npm для использования bash, скрипт запускается и возвращает соответствующее сообщение.

Getting npm scripts to run as is in Windows