Cómo ejecutar el script de inicio con Nodemon

90

¿Cómo puedo ejecutar el script de inicio desde un archivo package.json con Nodemon?

Citronen
fuente
¿Está seguro de que puede ejecutar un script de inicio desde package.json? Porque, por lo que sé, package.json es enumerar todas sus dependencias y nodemon es mantener su proceso en ejecución. No estoy muy seguro de lo que está insinuando aquí.
Saras Arya

Respuestas:

141

Este será un comando simple para esto

nodemon --exec npm start
Ashutosh Jha
fuente
¿Qué sucede si necesito ejecutar solo pruebas sin ejecutar la aplicación? Su solución funciona con ambos.
Sergey
1
esto se ejecuta npm startpero no inicia el servidor de nodo para mí ... ¿cómo sabría dónde está server.js?
Sonic Soul
38

En el paquete json:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

Luego desde la terminal puedes usar npm start

Instalación de Nodemon: https://www.npmjs.com/package/nodemon

Murat Ozgul
fuente
1
Lo siento, estoy buscando una forma de ejecutar el script de inicio con nodemon, no ejecutar nodemon en el script de inicio. Lo siento si eso no quedó claro.
Citronen
6
¿No npm startfallará en producción por falta de nodemon?
ripper234
2
npm run startnonpm start
M. Dhaouadi
1
Soy un principiante con npm. No entiendo por qué necesitamos especificar el script de inicio mientras podemos usar nodemon listo para usar. Solo instalo nodemon con npm y lo uso directamente sin especificar ningún script y funciona perfectamente.
Hokhy Tann
@ M.Dhaouadi npm startes un alias denpm run start
George
16

Tengo un archivo TypeScript llamado "server.ts". Los siguientes scripts npm configuran Nodemon y npm para iniciar mi aplicación y monitorear cualquier cambio en los archivos TypeScript:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

Ya tengo Nodemon en dependencias. Cuando lo ejecute npm start, le pedirá a Nodemon que monitoree sus archivos usando el -econmutador y luego llamará al myappscript npm, que es una combinación simple de transpilar los archivos mecanografiados y luego iniciar el server.js resultante. Cuando cambio el archivo TypeScript, debido al -ecambio, ocurre el mismo ciclo y se generarán y ejecutarán nuevos archivos .js.

MehranTM
fuente
14

Utilizo Nodemon versión 1.88.3 en mi proyecto Node.js. Para instalar Nodemon, consulte https://www.npmjs.com/package/nodemon .

Verifique su package.json, vea si "scripts" ha cambiado así:

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

server.jses mi nombre de archivo, puede usar otro nombre para este archivo como app.js.

Después de eso, ejecute esto en su terminal: npm run dev

Sukma Saputra
fuente
6

Utilizar -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"
KeatsPeeks
fuente
¿Hay alguna otra forma además de ejecutivo para hacer esto?
Citronen
Solo nodemon [options] --exec 'npm start -s'si quieres hacerlo desde la línea de comandos.
nathanhleung
@ArnoldRoa Instálalo.
Константин Ван
5

Primero cambie su archivo package.json ,

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

Después de eso, ejecuta el comando

npm run start-dev
rkeshri
fuente
1
Pero cuando te escapas app.jsestás pasando por alto todo lo que ./bin/wwwhace ...
Jake Wilson
1
esta nueva pestaña abierta cada vez
Qui-Gon Jinn
5

En el archivo package.json. cambiar archivo como este

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

y luego ejecute npm run start-dev

Sohail Ahmad
fuente
1

También puede instalar nodemon globalmente para uso frecuente:

npm i nodemon -g o sudo npm i nodemon -g

luego edite su package.json:

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

Generalmente, 'dev' especifica el uso de desarrollo ( npm run dev ).

dhahn
fuente
1

Dependerá de los tipos de instalación de Nodemon. Si instala Nodemon globalmente usando comandos ( npm install nodemon --globalo npm install nodemon -g), no tiene que especificar ningún script para Nodemon en su archivo package.json . Solo ejecutando el comandonodemon index.js ejecutará su proyecto.

Pero si instala Nodemon localmente mediante un comando npm install nodemon, debe especificar el script. Si lo nombra como inicio, entonces npm run starto npm startactivará la ejecución del servidor.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }
Señor
fuente
1

Si ha nodemoninstalado globalmente, simplemente ejecutar nodemonen su proyecto ejecutará automáticamente el startscript desdepackage.json .

Por ejemplo:

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

De la documentación de nodemon :

nodemon también buscará la propiedad scripts.start en package.json (a partir de nodemon 1.1.x).

Alf Eaton
fuente
0

En paquete json:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

Y en la terminal para desarrollar:

npm run dev

Y para iniciar el servidor regularmente:

npm start
amixOV
fuente
¿Qué es "regiuler" ? ¿Quiere decir "regular" ?
Peter Mortensen
-1

Para evitar una instalación global, agregue Nodemon como una dependencia, luego ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },
zipzit
fuente
Aún puede hacerlo "start-dev": "nodemon ./bin/www" si lo instala bajo devDependencies
WoLfPwNeR