J'essaie de configurer un environnement pour une application Node.js. mais je reçois cette erreur à chaque fois.
"NODE_ENV" n'est pas reconnu comme une commande interne ou externe, une commande exploitable ou un fichier de commandes.
Qu'est-ce que cela signifie et comment puis-je résoudre ce problème?
J'utilise Windows et j'ai également essayé, set NODE_ENV=development
mais je n'ai pas eu de chance.
J'ai écrit un module pour cela: win-node-env .
Il crée un
NODE_ENV.cmd
qui définit laNODE_ENV
variable d'environnement et génère un processus enfant avec le reste de la commande et ses arguments.Il suffit de l'installer (globalement) et d'exécuter vos commandes de script npm, cela devrait automatiquement les faire fonctionner.
la source
pour les fenêtres, utilisez
&
également la commande entre. Comme,la source
NODE_ENV
sera 'development' (l'espace blanc entre 't' et '&' sera contenu parNODE_ENV
).trim()
la valeur plus tard pour faire duprocess.env.NODE_ENV == 'production'
travail. Quoi qu'il en soit pour éviter cela dans un oneliner?"test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'"
faux"test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js"
vrai . Vous devez supprimer' '
autour du fichier js.npm install "cross-env"
module.cross-env NODE_ENV=development node foo.js
. Ensuite, vous pouvez exécuter le mêmenpm run build
.la source
cross-env
les dépendances danspackage.json
npm install --save-dev cross-env
; cela aide également à l'erreur'env' is not recognized as an internal or external command
lorsque le script npm a ditenv VARNAME=varvalue && ...
(supprimez simplement env et insérez cross-env à la place). Pas besoin pour les développeurs d'installer quelque chose dans le monde ou d'avoir différents scripts npm pour différentes plates-formes!Utilisez win-node-env , pour l'utiliser, exécutez simplement la commande ci-dessous sur votre
cmd
oupower shell
ougit bash
:Après cela, tout est comme Linux.
la source
fera que NODE_ENV contiendra un espace à la fin:
Comme mentionné dans un commentaire ici , utilisez-le à la place:
la source
Changer vos scripts pour accueillir Windows est une douleur royale. Essayer de comprendre les traductions Windows appropriées et de maintenir 2 ensembles de scripts n'est pas un moyen de vivre votre vie.
Il est beaucoup plus facile de configurer npm pour utiliser bash sous Windows et vos scripts s'exécuteront tels quels.
Courez simplement
npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
. Assurez-vous que le chemin d'accès à l'exécutable bash est correct pour votre machine.Vous devrez probablement démarrer une nouvelle instance du terminal pour que la modification prenne effet.La capture d'écran ci-dessous illustre l'avantage.
la source
Pour ceux qui utilisent Git Bash et qui ont des problèmes avec
npm run <script>
,Il suffit de configurer npm pour utiliser Git Bash pour exécuter des scripts
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
(changez le chemin en fonction de votre installation)Et puis npm exécutera des scripts avec Git Bash, donc de telles utilisations comme
NODE_ENV=
fonctionneront correctement.la source
Travaillé pour moi
la source
Pour Windows, ouvrez Git Bash et essayez
NODE_ENV=production node app.js
la source
npm <scripts_entry>
, j'obtiens une erreur avec un phrasé différent mais une signification équivalente: il traite le nom env var comme un exécutable.npm run <script>
utilise Windows cmd par défaut pour exécuter les commandes. Vous pouvez le configurer pour utiliser Git Bash.npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
Et puisnpm run
utilisera Git Bash pour exécuter des scripts.La plupart des réponses là-haut ne m'a pas aidé ..
Ce qui m'a aidé, c'est
NODE_ENV=production&& nodemon app/app.js
Prenez note de l'espace. Bonne chance.
la source
Si quelqu'un d'autre est venu ici comme moi, essayant de trouver une solution à l'erreur:
La raison pour laquelle j'ai obtenu cela est que je migrais une solution angulaire d'une machine de développement Mac vers un bureau Windows 10. C'est ainsi que je l'ai résolu.
courir
npm install --save-dev cross-env
aller dans mon fichier package.json et changer toutes les références de script de
env <whatever>
àcross-env <whatever>
Ensuite, mes commandes comme:
npm run start:some_random_environment_var
fonctionnent désormais correctement sur Windows 10.la source
process.env.NODE_ENV ajoute un espace blanc pour ce faire
la source
Pour les fenêtres, vous pouvez le faire comme
la source