web-dev-qa-db-fra.com

"NODE_ENV" n'est pas reconnu comme une commande interne ou externe, une commande utilisable ou un fichier de commandes.

J'essaie de configurer un environnement pour une application node.js. mais j'obtiens "NODE_ENV" n'est pas reconnu comme une commande interne ou externe, une commande utilisable ou un fichier batch. erreur à chaque fois. 

Qu'est-ce que cela signifie et comment puis-je résoudre ce problème?

J'utilise Windows et j'ai également essayé de définir NODE_ENV=development mais pas de chance.

Aidez-moi! Merci d'avance.

119
krozero

Il semble que votre erreur vienne d’une tentative d’exécution de quelque chose comme celle-ci (qui fonctionne sous Linux).

NODE_ENV=development node foo.js

l'équivalent dans Windows serait

SET NODE_ENV=development
node foo.js

en cours d'exécution dans la même commande Shell. Vous avez mentionné que le jeu NODE_ENV ne fonctionnait pas, mais vous ne saviez pas comment/quand vous l'avez exécuté.

182
Jim O'Neil

pour Windows, utilisez également & entre les commandes. Comme,

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

J'ai écrit un module pour cela: win-node-env

Il crée un NODE_ENV.cmd qui définit la variable d'environnement NODE_ENV et génère un processus enfant avec le reste de la commande et ses arguments.

Installez-le simplement (globalement) et exécutez vos commandes de script npm, il devrait automatiquement les faire fonctionner.

npm install -g win-node-env
112
laggingreflex
  1. npm install "cross-env" module.
  2. modifiez le code en tant que cross-env NODE_ENV=development node foo.js. Ensuite, vous pouvez exécuter le même npm run build.
57
Susan-stack
set NODE_ENV=production & nodemon app/app.js

provoquera contenir un espace à la fin de NODE_ENV

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

Comme mentionné dans un commentaire ici , utilisez ceci à la place:

NODE_ENV=production&& nodemon app/app.js
16
Flion

Utilisez win-node-env , Pour l’utiliser, exécutez simplement la commande ci-dessous sur votre cmd ou power Shell ou git bash:

npm install -g win-node-env

Après, tout est comme Linux.

16
AmerllicA
npm install -S cross-env

A travaillé pour moi

3
Bang Andre

Changer vos scripts pour s’adapter à Windows est une douleur royale. Essayer de trouver les traductions appropriées de Windows et de conserver 2 jeux de scripts n’est pas une façon 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.

Il suffit de lancer 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 ordinateur. Vous devrez probablement démarrer une nouvelle instance du terminal pour que la modification soit prise en compte.

La capture d'écran ci-dessous illustre cet avantage.

  1. npm ERR! en essayant d'exécuter le script initialement.
  2. Le script modifié pour l’utilisation de Windows s’exécute mais n’affiche pas le message de retour.
  3. Après la mise à jour de npm config pour utiliser bash, le script s'exécute et renvoie le message approprié.

Getting npm scripts to run as is in Windows

3
Jon Crowell

Pour ceux qui utilisent Git Bash et qui ont des problèmes avec npm run <script>,

Il suffit de configurer npm pour qu’il utilise 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 ensuite, npm exécutera des scripts avec Git Bash, de sorte que des utilisations telles que NODE_ENV= fonctionneront correctement.

1
user3790180

La plupart des réponses ne m'ont pas aidé.

Ce qui m'a aidé était NODE_ENV=production&& nodemon app/app.js

Prenez note de l'espace . Bonne chance.

1
SirPhemmiey

Si quelqu'un d'autre, comme moi, essayait de trouver une solution à l'erreur:

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

La raison pour laquelle j’ai eu ce problème est que j’étais en train de migrer une solution angulaire d’une machine de développement mac vers un bureau Windows 10. Voici comment je l'ai résolu.

  1. exécuter npm install --save-dev cross-env

  2. aller dans mon fichier package.json et changer toutes les références de script de env <whatever> à cross-env <whatever>

Ensuite, mes commandes telles que: npm run start:some_random_environment_var fonctionnent désormais correctement sous Windows 10.

0
Helzgate

Pour les fenêtres ouvrez git bash et essayez

NODE_ENV=production node app.js

0
Nikhil Arya