Próbuję skonfigurować środowisko dla aplikacji Node.js. ale za każdym razem otrzymuję ten błąd.
„NODE_ENV” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, polecenie operacyjne lub plik wsadowy.
Co to znaczy i jak mogę rozwiązać ten problem?
Korzystam z systemu Windows i również próbowałem, set NODE_ENV=development
ale nie miałem szczęścia.
Napisałem do tego moduł: win-node-env .
Tworzy
NODE_ENV.cmd
to ustawiaNODE_ENV
zmienną środowiskową i spawns procesu dziecko z resztą polecenia i jego argumentami.Wystarczy zainstalować (globalnie) i uruchomić polecenia skryptu npm, powinno to automatycznie sprawić, by działały.
źródło
dla systemu Windows użyj
&
również polecenia między. Lubić,źródło
NODE_ENV
będzie „rozwój” (biała spacja między „t” a „&” zostanie zawarta przezNODE_ENV
).trim()
docenić później, aby mócprocess.env.NODE_ENV == 'production'
pracować. W każdym razie, aby tego uniknąć w oneliner?"test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'"
źle"test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js"
prawda . Musisz usunąć cały' '
plik js.npm install "cross-env"
moduł.cross-env NODE_ENV=development node foo.js
. Następnie możesz uruchomić podobnienpm run build
.źródło
cross-env
zależności wpackage.json
npm install --save-dev cross-env
; pomaga to również w błędzie,'env' is not recognized as an internal or external command
gdy powiedział skrypt npmenv VARNAME=varvalue && ...
(wystarczy usunąć env i zamiast tego wstawić cross-env). Nie ma potrzeby, aby programiści instalowali coś globalnie lub mieli różne skrypty npm dla różnych platform!Zastosowanie wygrać-node-env , za korzystanie z niego po prostu uruchomić poniżej komendy na własną
cmd
lubpower shell
lubgit bash
:Po tym wszystko jest jak Linux.
źródło
spowoduje, że NODE_ENV będzie zawierał spację na końcu:
Jak wspomniano w komentarzu tutaj , użyj tego zamiast:
źródło
NODE_ENV="production"
?&
a podwójnym&&
? Oba wydają się działać dla mnie.Zmiana skryptów w celu dostosowania do systemu Windows to królewski ból. Próba znalezienia odpowiednich tłumaczeń dla systemu Windows i utrzymywania 2 zestawów skryptów nie jest sposobem na życie.
O wiele łatwiej jest skonfigurować npm do korzystania z basha w systemie Windows, a twoje skrypty będą działać tak, jak są.
Po prostu biegnij
npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
. Upewnij się, że ścieżka do pliku wykonywalnego bash jest poprawna dla twojego komputera. Prawdopodobnie konieczne będzie uruchomienie nowej instancji terminala, aby zmiana zaczęła obowiązywać.Poniższy zrzut ekranu ilustruje korzyści.
źródło
Dla tych, którzy używają Git Bash i mają problemy z
npm run <script>
,Wystarczy ustawić npm, aby używał Git Bash do uruchamiania skryptów
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
(zmień ścieżkę zgodnie z instalacją)I wtedy npm uruchomi skrypty z Git Bash, więc takie zastosowania
NODE_ENV=
będą działać poprawnie.źródło
Pracował dla mnie
źródło
W systemie Windows otwórz git bash i spróbuj
NODE_ENV=production node app.js
źródło
npm <scripts_entry>
, pojawia się błąd o innym sformułowaniu, ale o równoważnym znaczeniu: traktuje nazwę zmiennej env jako plik wykonywalny.npm run <script>
używa Windows cmd do uruchamiania poleceń. Możesz ustawić używanie Git Bash.npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
A następnienpm run
użyje Git Bash do uruchamiania skryptów.Większość odpowiedzi tam nie pomogła mi ...
Pomogło mi to
NODE_ENV=production&& nodemon app/app.js
Zwróć uwagę na miejsce. Powodzenia.
źródło
Jeśli ktoś inny przyszedł tu jak ja, próbując znaleźć rozwiązanie błędu:
Powodem tego jest to, że migrowałem rozwiązanie kątowe z komputera programistycznego Mac na pulpit systemu Windows 10. Tak to rozwiązałem.
biegać
npm install --save-dev cross-env
przejdź do mojego pliku package.json i zmień wszystkie odwołania
env <whatever>
do skryptu z nacross-env <whatever>
Następnie moje polecenia, takie jak:
npm run start:some_random_environment_var
teraz działają dobrze w systemie Windows 10.źródło
process.env.NODE_ENV dodaje białą spację, zrób to
źródło
W przypadku systemu Windows możesz to zrobić w podobny sposób
źródło