Estoy tratando de configurar un entorno para una aplicación Node.js. pero recibo este error cada vez.
"NODE_ENV" no se reconoce como un comando interno o externo, comando operativo o archivo por lotes.
¿Qué significa esto y cómo puedo resolver este problema?
Estoy usando Windows y también lo intenté set NODE_ENV=development
pero no tuve suerte.
Escribí un módulo para esto: win-node-env .
Crea un archivo
NODE_ENV.cmd
que establece laNODE_ENV
variable de entorno y genera un proceso secundario con el resto del comando y sus argumentos.Simplemente instálelo (globalmente) y ejecute sus comandos de script npm, debería hacerlos funcionar automáticamente.
fuente
para Windows, utilice
&
también el comando intermedio. Me gusta,fuente
NODE_ENV
será 'desarrollo' (el espacio en blanco entre 't' y '&' estará contenido porNODE_ENV
).trim()
el valor más tarde para hacer elprocess.env.NODE_ENV == 'production'
trabajo. De todos modos para evitar esto en una línea?"test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'"
equivocada . Necesita eliminar el alrededor del archivo js."test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js"
' '
npm install "cross-env"
módulo.cross-env NODE_ENV=development node foo.js
. Entonces puedes ejecutar el me gustanpm run build
.fuente
cross-env
a las dependencias enpackage.json
npm install --save-dev cross-env
; esto también ayuda con el error'env' is not recognized as an internal or external command
cuando el script npm diceenv VARNAME=varvalue && ...
(simplemente elimine env e inserte cross-env en su lugar). ¡No es necesario que los desarrolladores instalen algo globalmente o que tengan diferentes scripts npm para diferentes plataformas!Use win-node-env , para usarlo simplemente ejecute el siguiente comando en su
cmd
opower shell
ogit bash
:Después de eso, todo es como Linux.
fuente
hará que NODE_ENV contenga un espacio al final:
Como se menciona en un comentario aquí , use esto en su lugar:
fuente
Cambiar sus scripts para acomodar Windows es un dolor real. Intentar descubrir las traducciones apropiadas de Windows y mantener 2 conjuntos de scripts no es una forma de vivir tu vida.
Es mucho más fácil configurar npm para usar bash en Windows y sus scripts se ejecutarán tal cual.
Simplemente corre
npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
. Asegúrese de que la ruta al ejecutable bash sea correcta para su máquina. Es probable que deba iniciar una nueva instancia del terminal para que el cambio surta efecto.La siguiente captura de pantalla ilustra el beneficio.
fuente
Para aquellos que usan Git Bash y tienen problemas con
npm run <script>
,Simplemente configure npm para usar Git Bash para ejecutar scripts
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
(cambie la ruta de acuerdo con su instalación)Y luego npm ejecutará scripts con Git Bash, por lo que usos como
NODE_ENV=
funcionarán correctamente.fuente
Trabajó para mi
fuente
Para ventanas, abre git bash y prueba
NODE_ENV=production node app.js
fuente
npm <scripts_entry>
, recibo un error con una redacción diferente pero con un significado equivalente: trata el nombre de var var como un ejecutable.npm run <script>
usa cmd de Windows por defecto para ejecutar comandos. Puede configurarlo para usar Git Bash.npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
Y luegonpm run
usará Git Bash para ejecutar scripts.La mayoría de las respuestas allí arriba no me ayudaron ...
Lo que me ayudó fue
NODE_ENV=production&& nodemon app/app.js
Toma nota del espacio. Buena suerte.
fuente
Si alguien más vino aquí como yo tratando de encontrar una solución para el error:
La razón por la que obtuve esto es porque estaba migrando una solución angular de una máquina de desarrollo de Mac a un escritorio de Windows 10. Así es como lo resolví.
correr
npm install --save-dev cross-env
vaya a mi archivo package.json y cambie todas las referencias de script de
env <whatever>
across-env <whatever>
Entonces mis comandos como:
npm run start:some_random_environment_var
ahora se ejecutan bien en Windows 10.fuente
process.env.NODE_ENV está agregando un espacio en blanco para hacer esto
fuente
Para windows puedes hacerlo como
fuente