Maison >interface Web >js tutoriel >Utilisation de nodemon et montrez dans Node.js pour les redémarrages en direct

Utilisation de nodemon et montrez dans Node.js pour les redémarrages en direct

Lisa Kudrow
Lisa Kudroworiginal
2025-02-08 10:00:19404parcourir

Using Nodemon and Watch in Node.js for Live Restarts

Dites au revoir à la Cumbersomeness des redémarrages répétés dans le développement de Node.js! Cet article présente deux méthodes pour vous aider à améliorer l'efficacité du développement.

Points de base

  • Développement efficace avec Nodemon: nous présenterons Nodemon, un module Node.js tiers, qui peut résoudre efficacement le problème de l'arrêt et du redémarrage manuellement de l'application Node.js après chaque modification de code.
  • Options de configuration NODEMON: Nous couvrirons diverses options de configuration pour Nodemon, telles que la définition d'un chemin spécifique pour surveiller, ignorer un chemin spécifique, surveiller une extension de fichier spécifique, ajuster le retard de redémarrage et régler les variables d'environnement.
  • Node.js - Mode-watch (pour les applications simples): Pour les applications simples, si vous utilisez Node.js 18.11 ou version ultérieure, vous pouvez utiliser l'option expérimentale --watch de Node.js. Cette fonction intégrée redémarre l'application chaque fois qu'un fichier importé modifie, fournissant une alternative plus directe que Nodemon sans avoir besoin de modules tiers supplémentaires. Cependant, il n'a pas les options de contrôle avancées disponibles dans Nodemon.

Si vous avez une expérience de développement PHP, vous savez que vous pouvez toujours mettre à jour le code et actualiser le navigateur pour tester les modifications. Un serveur Web comme Apache ou Nginx recevra votre demande de fichier PHP et transmettra le contenu à l'interprète PHP pour exécuter le code. Le serveur renvoie la sortie générée (généralement HTML ou JSON) dans le navigateur d'appel. En d'autres termes, le code s'exécute dynamiquement à chaque fois qu'il est demandé.

Node.js adopte une approche différente des applications Web: Votre application JavaScript est un serveur Web . L'exécution node index.js Initialisera l'application, chargera tous les modules et démarrera un serveur qui peut répondre aux demandes entrantes. La modification du fichier n'affecte pas la sortie de l'application car elle s'exécute déjà en mémoire. Pour tester une mise à jour, vous devez le fermer avec ctrl | cmd c c node index.js> et exécuter

.

Node.js Les processus d'arrêt et de redémarrage peuvent devenir très frustrants pendant le débogage ou pendant ces rares heures focalisées, en particulier lors de la réalisation de nombreux changements. Heureusement, il existe deux solutions:
  1. nodemon
  2. --watch Node.js
  3. mode

nodemon

NODEMON est un module Node.js tiers développé par JavaScript Expert Remy Sharp. (Il a dit que vous pouvez le prononcer à volonté!)

Vous pouvez installer Nodemon en tant que module global:
<code class="language-bash">npm install -g nodemon</code>

puis remplacez le nœud par nodemon dans la commande de démarrage de développement. Par exemple, considérez la commande suivante:
<code class="language-bash">node --inspect index.js arg1 arg2</code>

La commande ci-dessus ressemblera maintenant à ceci:
<code class="language-bash">nodemon --inspect index.js arg1 arg2</code>

Votre application démarrera comme d'habitude, mais elle redémarrera automatiquement lorsque vous modifierez et enregistrerez le fichier source. Pas besoin d'appuyer sur ctrl | cmd c rs et exécuter à nouveau, bien que vous puissiez taper et appuyez sur Entrez

pour forcer le redémarrage.

REMARQUE: NODEMON est une solution côté serveur qui ne rafraîchit aucun onglet de navigateur que vous pointez vers l'application. Vous pouvez utiliser des outils tels que BrowSersync ou Esbuild pour réaliser le rechargement en temps réel.

pour obtenir l'aide de nodemon, entrez:

<code class="language-bash">npm install -g nodemon</code>

Configuration NODEMON

NODEMON a son propre ensemble de paramètres de ligne de commande qui ont priorité sur les configurations ailleurs. Vous pouvez également définir des configurations à:

  • partie de package.json dans le fichier "nodemonConfig" du projet
  • Fichier de configuration local nodemon.json dans le répertoire du projet, et / ou
  • Global nodemon --config <file></file> Fichier de configuration utilisé lors de l'exécution nodemon.json de la ligne de commande

Les paramètres / paramètres suivants sont couramment utilisés.

regarde

NODEMON surveille les fichiers JavaScript dans le répertoire de travail actuel, mais vous pouvez explicitement définir un chemin spécifique à l'aide de wildcards sur la ligne de commande:

<code class="language-bash">node --inspect index.js arg1 arg2</code>

ou vous pouvez le faire dans le fichier de configuration nodemon.json:

<code class="language-bash">nodemon --inspect index.js arg1 arg2</code>

ignorer

De même, vous pouvez choisir d'ignorer le chemin:

<code class="language-bash">nodemon --help</code>

ou vous pouvez le faire dans le fichier de configuration nodemon.json:

<code class="language-bash">nodemon --watch lib1 config/*.json ./index.js</code>

ext

Vous pouvez surveiller des fichiers spécifiques par leurs extensions de fichiers. Par exemple, vous pouvez surveiller les fichiers de modèle JS, CJ, MJS, JSON et NJK comme ceci:

<code class="language-json">{
  "watch": [
    "lib1",
    "config/*.json"
  ]
}</code>

ou vous pouvez le faire dans le fichier de configuration nodemon.json:

<code class="language-bash">nodemon --ignore lib2 config/build.json ./index.js</code>

LegacyWatch

Dans certains environnements, tels que les conteneurs Docker qui lisent les fichiers à partir de lecteurs montés, la surveillance des fichiers peut échouer. Passez au mode de surveillance hérité Utilisez le sondage pour vérifier si le fichier a été modifié. De la ligne de commande:

<code class="language-json">{
  "ignore": [
    "lib2",
    "config/build.json"
  ]
}</code>

ou dans le fichier de configuration nodemon.json:

<code class="language-bash">nodemon --ext "js,cjs,mjs,json,njk" ./index.js</code>

retard

Nodemon attend une seconde avant de déclencher un redémarrage. Ceci est utile lorsque vous enregistrez généralement de nombreux fichiers à la fois. Vous pouvez modifier le retard de la ligne de commande - par exemple, à cinq secondes:

<code class="language-json">{
  "ext": "js,cjs,mjs,json,njk"
}</code>

ou dans le fichier de configuration nodemon.json (notez que cette configuration utilise des millisecondes au lieu de secondes):

<code class="language-bash">nodemon --legacy-watch ./index.js</code>

Verbose

Afficher le journal de sortie détaillé:

<code class="language-json">{
  "legacyWatch": true
}</code>

ou dans le fichier de configuration nodemon.json:

<code class="language-bash">nodemon --delay 5 ./index.js</code>

Env

Fichier de configuration pour définir une variable d'environnement spécifique: nodemon.json

<code class="language-json">{
  "delay": 5000
}</code>
Autres exécutables

Enfin, vous pouvez utiliser NODEMON pour lancer des applications écrites dans d'autres langues. Par exemple, pour démarrer un script perl qui redémarre automatiquement:

<code class="language-bash">nodemon --verbose ./index.js</code>
Vous pouvez également définir une liste des exécutables à l'aide de son extension dans le fichier de configuration

: nodemon.json

<code class="language-json">{
  "verbose": true
}</code>
nodemon avancé

Si vous en avez besoin, Nodemon offre des fonctionnalités plus avancées:

  • Envoyez un signal afin que vous puissiez gérer l'arrêt gracieusement
  • Événement gratuit lorsque l'état de Nodemon change
  • Transférer le pipeline de sortie vers d'autres processus
  • Chargez le module NODEMON dans votre projet
  • Générer Nodemon en tant que processus enfant, et
  • Utilisez NODEMON dans Gulp et Grunt Workflows.

node.js - mode-watch

Si vous avez des exigences de démarrage d'applications complexes, Nodemon est toujours l'outil préféré. Cependant, si vous utilisez Node.js 18.11 (publié à la fin 2022) ou ultérieure, il offre une option expérimentale --watch pour redémarrer votre application sans installer NODEMON ou tout autre module tiers. Par exemple, pour la commande de démarrage:

<code class="language-bash">npm install -g nodemon</code>

cela deviendra:

<code class="language-bash">node --inspect index.js arg1 arg2</code>

node.js redémarrera lorsqu'un fichier importé modifie. Il n'y a pas d'autres options de contrôle, donc s'il ne correspond pas à votre projet, envisagez d'utiliser Nodemon à la place.

Résumé

À mesure que votre expérience se développe, vous trouverez de plus en plus utile de redémarrer automatiquement les applications Node.js. Veuillez considérer cela comme faisant partie du flux de travail de développement dans tous les projets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn