Comment exécuter le script de démarrage avec Nodemon

90

Comment puis-je exécuter le script de démarrage à partir d'un fichier package.json avec Nodemon?

Citronen
la source
Vous êtes sûr de pouvoir exécuter un script de démarrage à partir de package.json? Parce que d'après ce que je sais, package.json est de lister toutes vos dépendances et nodemon est de maintenir votre processus en cours d'exécution. Je ne sais pas trop à quoi vous faites allusion ici?
Saras Arya

Réponses:

142

Ce sera une simple commande pour cela

nodemon --exec npm start
Ashutosh Jha
la source
Que faire si je dois exécuter uniquement des tests sans exécuter l'application? Votre solution exécute les deux.
Sergey
1
cela fonctionne npm startmais ne démarre pas le serveur de nœuds pour moi .. comment saurait-il où se trouve server.js?
Sonic Soul
39

Dans le package json:

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

  }
}

Ensuite, à partir du terminal, vous pouvez utiliser npm start

Installation de Nodemon: https://www.npmjs.com/package/nodemon

Murat Ozgul
la source
1
Désolé, vous cherchez un moyen d'exécuter le script de démarrage avec nodemon, pas d'exécuter nodemon dans le script de démarrage. Désolé si ce n'était pas clair.
Citronen
6
npm startN'échouer dans la production faute de nodemon?
ripper234 du
2
npm run startnotnpm start
M. Dhaouadi
1
Je suis un débutant avec npm. Je ne comprends pas pourquoi nous devons spécifier le script de démarrage alors que nous pouvons utiliser nodemon hors de la boîte? Je viens d'installer nodemon avec npm et de l'utiliser directement sans spécifier de script et cela fonctionne parfaitement.
Hokhy Tann
@ M.Dhaouadi npm startest un alias pournpm run start
George
16

J'ai un fichier TypeScript appelé "server.ts". Les scripts npm suivants configurent Nodemon et npm pour démarrer mon application et surveiller les modifications sur les fichiers TypeScript:

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

J'ai déjà Nodemon sur les dépendances. Lorsque je l'exécute npm start, il demande à Nodemon de surveiller ses fichiers à l'aide du -ecommutateur, puis il appelle le myappscript npm qui est une simple combinaison de transpilage des fichiers dactylographiés, puis de démarrage du server.js résultant. Lorsque je change le fichier TypeScript, à cause de la -ecommutation, le même cycle se produit et de nouveaux fichiers .js seront générés et exécutés.

MehranTM
la source
14

J'utilise la version 1.88.3 de Nodemon dans mon projet Node.js. Pour installer Nodemon, voir https://www.npmjs.com/package/nodemon .

Vérifiez votre package.json, voyez si "scripts" a changé comme ceci:

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

server.jsest mon nom de fichier, vous pouvez utiliser un autre nom pour ce fichier comme app.js.

Après cela, exécutez ceci sur votre terminal: npm run dev

Sukma Saputra
la source
6

Utilisez -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"
KeatsPeeks
la source
Existe-t-il un autre moyen que l'exécutif de faire cela?
Citronen
Juste nodemon [options] --exec 'npm start -s'si vous voulez le faire à partir de la ligne de commande.
nathanhleung
@ArnoldRoa Installez-le.
Константин Ван
5

Commencez par modifier votre fichier package.json ,

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

Après cela, exécutez la commande

npm run start-dev
rkeshri
la source
1
Mais quand vous vous enfuyez, app.jsvous contournez tout ce qui ./bin/wwwfait ...
Jake Wilson
1
ce nouvel onglet ouvre à chaque fois
Qui-Gon Jinn
5

Dans le fichier package.json. changer de fichier comme ça

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

puis exécutez npm run start-dev

Sohail Ahmad
la source
1

Vous pouvez également installer nodemon globalement pour une utilisation fréquente:

npm i nodemon -g ou sudo npm i nodemon -g

puis éditez votre package.json:

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

Généralement, 'dev' spécifie une utilisation en développement ( npm run dev ).

Dhahn
la source
1

Cela dépendra des types de votre installation Nodemon. Si vous installez Nodemon globalement à l'aide des commandes ( npm install nodemon --globalou npm install nodemon -g), vous n'avez pas à spécifier de script pour Nodemon dans votre fichier package.json . Exécution de la commandenodemon index.js lancera votre projet.

Mais si vous installez Nodemon localement par commande, npm install nodemonvous devez spécifier le script. Si vous nommez comme commencer alors npm run startou npm startva déclencher le serveur à exécuter.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }
Seigneur
la source
1

Si vous avez nodemoninstallé globalement, une simple exécution nodemondans votre projet exécutera automatiquement le startscript à partir depackage.json .

Par exemple:

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

Depuis la documentation nodemon :

nodemon recherchera également la propriété scripts.start dans package.json (à partir de nodemon 1.1.x).

Alf Eaton
la source
0

Dans le paquet json:

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

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

Et dans le terminal pour le développement:

npm run dev

Et pour démarrer le serveur régulièrement:

npm start
amixOV
la source
Qu'est-ce que "regiuler" ? Voulez-vous dire «régulier» ?
Peter Mortensen
-1

Pour éviter une installation globale, ajoutez Nodemon en tant que dépendance, puis ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },
zipzit
la source
Vous pouvez toujours le faire "start-dev": "nodemon ./bin/www" si vous l'installez sous devDependencies
WoLfPwNeR