El comando nodemon no se reconoce en la terminal para el servidor node js

86

Estoy configurando el servidor node.js desde https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens . Soy nuevo en node.js. Estoy instalando npm install nodemon --save. Pero cuando ejecuto el servidor con esto nodemon server.js.
En la terminal mostrando:

nodemon no se reconoce como comando interno o externo, programa operable o archivo por lotes

ingrese la descripción de la imagen aquí

node server.jsEl comando está funcionando e inició el servidor, pero el nodemoncomando no funciona.

Estoy configurado el servidor js del nodo desde https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens video.

No sé por qué no funciona. He probado algún comando para instalar nodemon.

npm install -g nodemon 
npm install -g nodemon --save 
npm install --save-dev nodemon 
npm install -g nodemon@debug 

npm install -g --force nodemon

He visto un enlace que no puedo instalar nodemon globalmente, "nodemon" no reconocido , pero no sé cómo establecer la ruta debido a la ubicación de mi proyecto en la unidad D.

Quiero correr nodemon server.js. Si alguien tiene una idea por favor compártala. Gracias por adelantado.

Martín
fuente

Respuestas:

208

Necesitas instalarlo globalmente

npm install -g nodemon
# or if using yarn
yarn global add nodemon

Y luego estará disponible en la ruta (veo que ahora lo intentaste y no funcionó, tu ruta puede estar en mal estado)

Si desea utilizar la versión instalada localmente, en lugar de instalarla globalmente, puede crear un script en su package.json

"scripts": {
    "serve": "nodemon server.js"
  },

y luego usa

npm run serve

opcionalmente si se usa hilo

# without adding serve in package.json
yarn run nodemon server.js
# with serve script in package.json
yarn run serve

npm buscará en su carpeta local node_modules antes de buscar el comando en sus módulos globales

ndonohoe
fuente
¿Qué no funciona? ¿El script utiliza instalación local?
ndonohoe
Yaa. He instalado nodemon. Puse el script en el archivo package.json. Y después de ejecutar npm ejecutar serve. Después de todo, ejecute nodemon server.js pero no funciona.
Martin
package.json: {"scripts": {"serve": "nodemon server.js"}, "nombre": "node-site", "versión": "1.0.0", "descripción": "", " main ":" server.js "," scripts ": {" test ":" echo \ "Error: no se ha especificado ninguna prueba \" && exit 1 "}," autor ":" "," licencia ":" ISC ", "dependencias": {"express": "^ 4.14.0", "nodemon": "^ 1.11.0"}, "devDependencies": {"gulp-nodemon": "^ 2.2.1", "nodemon": "^ 1.11.0"}}
Martin
¿Puede aclarar "no funciona"? ¿Hay algún error? ¿No pasa nada?
ndonohoe
Puede ser porque tiene dos conjuntos de scripts allí, debe tener todos los scripts en un objeto de scripts
ndonohoe
31
  1. Instale nodemon globalmente:

    C:\>npm install -g nodemon
    
  2. Obtener prefijo:

    C:\>npm config get prefix
    

    Obtendrá un resultado como el siguiente en su consola:

    C:\Users\Family\.node_modules_global
    

    Cópialo.

  3. Establecer ruta.
    Vaya a Configuración avanzada del sistema → Variable de entorno → Haga clic en Nuevo (en Variables de usuario) → Se mostrará un formulario emergente → Pase los siguientes valores:

    variable name = path,
    variable value = Copy output from your console
    
  4. Ahora ejecuta Nodemon:

    C:\>nodemon .
    
Raj Kumar
fuente
¡¡Esto funciona!! Esto es lo que estaba buscando. Gracias
yashjain12yj
esto funcionó para mí. De hecho, tengo Windows y necesito arreglar las variables de entorno. Gracias :)
Laveena
21

Primero, escriba npm install --save nodemon luego en package.json escriba lo siguiente

"scripts": {
    "server": "nodemon server.js"
  },

luego escribir

npm run server
Alok Prusty
fuente
¡Esto funcionó! Muchas gracias. Solo una consulta, nodemon nos impide reiniciar el archivo del servidor, pero aún tenemos que actualizar el navegador. ¿Puede el navegador actualizarse por sí solo, como lo hace en angular?
Rahul Sharma
8

Estaba enfrentando el mismo problema. Había instalado nodemon como una dependencia de desarrollo y cuando intenté iniciar el servidor me dio el mensaje de que

nodemon no se reconoce como comando interno o externo, programa operable o archivo por lotes

Luego lo instalé globalmente e intenté iniciar el servidor y ¡funcionó!

npm install -g nodemon
adityaekawade
fuente
6

¿Es necesario instalarlo globalmente? ¿Necesitas poder correr nodemon server.js? Si no es así, siempre puede llamarlo desde el directorio de su proyecto local. Debería estar aquí:

node_modules/.bin/nodemon
Larry Turtis
fuente
Esto es útil para mí para ejecutar mi api nodejs desde el script de shell. ¡Muchas gracias!
Nam G VU
4

Dado que el prefijo de nodo no está en la variable PATH ENV, no se reconoce ninguno de los módulos instalados globalmente. Por favor intente esto. Abra el indicador de cmd npm config get prefix agregue la ruta resultante a la variable env PATH. Ahora debería poder ejecutar nodemon desde cualquier ubicación. pruebe este enlace y sígalo. Fixing npm permissions https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory

vighanesh mandavkar
fuente
En su enlace están las instrucciones para Linux, ¿tiene algo para Windows?
Jose Rojas
4

Esta línea resolvió mi problema en CMD:

npm install --save-dev nodemon
Bakos Bence
fuente
3
La instalación global de nodemon no funcionó para mí, pero esta sí :)
codemirror
4

Esto puede llegar demasiado tarde, pero es mejor decir algo :)

Si no desea instalar nodemon globalmente, puede usarlo npx, instala el paquete en tiempo de ejecución y se comportará como un paquete global (tenga en cuenta que solo está disponible en este momento y no existe globalmente).

Así que todo lo que necesitas es npx nodemon server.js.

  • npxse puede utilizar de forma inmediata desde la [email protected]versión en adelante.
Yaron Miro
fuente
3

Para usar nodemon debe instalarlo globalmente.

Para ventanas

npm i -g nodemon

Para Mac

sudo npm i -g nodemon

Si no desea instalarlo globalmente, puede instalarlo localmente en la carpeta de su proyecto ejecutando command npm i nodemon . Dará un error similar a esto si se ejecuta localmente:

nodemon: el término 'nodemon' no se reconoce como el nombre de un
cmdlet, función, archivo de script o programa operable. Revisar la ortografía
del nombre, o si se incluyó una ruta, verifique que la ruta sea
corrija y vuelva a intentarlo.

Para eliminar este error, abra el package.json archivo y agregue

"scripts": {
     "server": "nodemon server.js"
 },

y después de eso solo ejecuta el comando

servidor de ejecución npm

y su nodemon comenzará a funcionar correctamente.

Amit Kumar
fuente
1
Incorrecto. Su secuencia de comandos debe decir {"server": "nodemon server.js"}
joedotnot
1

Simplemente tuve el mismo problema después de crear un nuevo perfil de usuario en mi máquina de desarrollo.

El problema era que no estaba ejecutando la consola (símbolo del sistema \ powershell ISE) como administrador.

Ejecutar como administrador resolvió este problema para mí.

Jim Jimson
fuente
1

Intenté instalar el nodemon a nivel mundial, pero eso no funcionó para mí. cada vez que intento ejecutarlo siempre me muestra el error:

nodemon : The term 'nodemon' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.

2. He encontrado dos soluciones para esto.

solución 1:

Lo que he intentado es actualizar los "scripts" en el archivo package.json y allí he agregado

"server": "nodemon app.js"

por encima de la línea de código y después de eso

npm run server

Soluton 2:

  1. Presione la tecla de Windows.

  2. Escriba "Ruta" en el cuadro de búsqueda y seleccione "Editar las variables de entorno del sistema"

  3. Haga clic en "Variables de entorno" cerca de la parte inferior.

  4. En la sección "Variables del sistema", haga doble clic en la variable "Ruta".

  5. Haga clic en "Nuevo" en el lado derecho.

  6. Copie y pegue esto en el cuadro (reemplace [Nombre de usuario]):

C: \ Users [nombre de usuario] \ AppData \ Roaming \ npm

  1. reinicie su terminal y VSCode.

  2. Luego escriba nodemon app.jspara ejecutar el nodemon

apliqué la solución 2 ya que solo necesitamos ejecutar nodemon [nombre de archivo.js]

Shubham Kumar
fuente
1

No es necesario instalar nodemon a nivel mundial. Simplemente ejecute este npx nodemon <scriptname.js> . Eso es.

pritam ghosh
fuente
0

Puede ejecutar su aplicación de nodo simplemente escribiendo nodemon It First run index.js Puede poner su punto de entrada en ese archivo fácilmente.

Si no ha instalado nodemon, primero debe instalarlo

npm install -g nodemon

Si tiene algún error de permiso, utilice

sudo npm install -g nodemon

Puede comprobar que nodemon existe o no mediante

nodemon -v
Shraddha Goel
fuente
0

Ejecute este comando:

npm install nodemon -g

Ahora instalará nodemon pero el problema con mi caso es que está instalando nodemon en otro lugar. Agregué la ruta de Nodejs desde (ProgramFiles (x86)) pero eso no funcionó, así que encontré otra solución.

  • Ejecutar el comando anterior
  • Se mostrará una ruta durante la instalación donde está instalado nodemon, luego [Por favor, vaya al enlace de abajo para ver la ruta] [1]

    [1]: https://i.stack.imgur.com/ld2sU.png

  • Copie la ruta hasta npm y configúrela en la variable de entorno
  • Ahora intente el siguiente comando, con suerte se ejecutará

      nodemon YourAppName.js
Junaid
fuente
0

Todas las opciones anteriores fallaron, obtuve la solución permanente para esto. Agregue la siguiente línea en package.json en dependencias y run npm install. Esto agregará el paquete nodemon a node_modules y listo, disfrute de la codificación.

"nodemon": "^1.17.*"
Amol Kamble
fuente
3
Bienvenido a Stack Overflow. Al responder una pregunta anterior con respuestas existentes, es útil explicar qué información nueva aporta su respuesta. Esta respuesta no parece mostrar una instalación global, hace referencia a una versión específica (por lo que no envejecerá bien) y no responde la pregunta que se hizo porque no muestra cómo habilitar el mando.
Jason Aller
0

Simplemente instale globalmente

 npm install -g  nodemon

Me funcionó en Windows 10.

nodemon app.js
Prathamesh Más
fuente
0

La política de ejecución predeterminada del cmdlet Set-ExecutionPolicy es Restringida para Windows. Puede intentar instalar nodemon configurando esta política en Sin restricciones.

ejecute el comando: Set-ExecutionPolicy Unrestricted y luego intente instalar nodemon y ejecute el comando:nodemon -v

Mayur
fuente
0

He arreglado de esta manera

  1. desinstalar nodemon local existente

    npm desinstalar nodemon

  2. instálelo de nuevo a nivel mundial.

    npm i -g nodemon

Saad Abbasi
fuente
-2

Elimine nodemon porque es una dependencia de desarrollo y use node en lugar de él.

"scripts": {
     "start": "node server.js"
 },

Esto funcionó para mí.

Atharv Upadhyay
fuente
No responde la pregunta. node y nodemon tienen diferentes propósitos.
joedotnot
es algo diferente. Para nodemon debería ser "server": "nodemon app.js"
Shubham Kumar