One place for hosting & domains

      nodemon

      Comment redémarrer vos applications Node.js automatiquement avec nodemon


      Introduction

      Sous Node.js, vous devez redémarrer le processus pour que les changements prennent effet, une étape supplémentaire qui s’ajoute à votre flux de travail pour que les modifications soient implémentées. En utilisant nodemon, vous pouvez éliminer cette étape supplémentaire car il se chargera de redémarrer le processus automatiquement.

      nodemon est un utilitaire d’interface de ligne de commande (CLI) développé par @rem. Il enveloppe votre application Node, surveille le système de fichiers et redémarre automatiquement le processus.

      Cet article vous permettra d’en apprendre davantage sur l’installation, le réglage et la configuration de nodemon.

      Conditions préalables

      Pour suivre les étapes de cet article, vous aurez besoin de ce qui suit :

      Étape 1 — Installation de nodemon

      En premier lieu, vous devez installer nodemon sur votre machine. Installez l’utilitaire soit globalement ou localement sur votre projet en utilisant npm ou Yarn  :

      Installation globale

      Vous pouvez installer nodemon de manière globale avec npm :

      Ou avec Yarn :

      Installation locale

      Vous pouvez également utiliser npm pour installer nodemon localement. Pour procéder à une installation locale, nous pouvons installer nodemon sous la forme d'une dev dependency avec --save-dev (ou --dev) :

      • npm install nodemon --save-dev

      Ou avec Yarn :

      Il y a cependant une chose à retenir concernant une installation locale. Il vous sera impossible d'utiliser la commande nodemon directement à partir de la ligne de commande suivante :

      Output

      • command not found: nodemon

      Vous pouvez cependant l'utiliser dans le cadre de certains scripts npm ou avec npx.

      Vous venez de terminer le processus d'installation de nodemon. Maintenant, nous allons utiliser nodemon avec nos projets.

      Étape 2 — Configuration d'un exemple du projet Express avec nodemon

      Nous pouvons utiliser nodemon pour lancer un script Node. Si, par exemple, la configuration du serveur Express se trouve dans un fichier server.js, nous pouvons la lancer et surveiller les modifications de la manière suivante :

      Vous pouvez transmettre les arguments de la même manière que pour exécuter le script avec Node :

      Chaque fois que vous modifiez un fichier avec l'une des extensions surveillées par défaut (.js, .mjs, .json, .coffee ou .litcoffee) dans le répertoire ou le sous-répertoire actuel, le processus redémarrera.

      Supposons que nous écrivions un exemple de fichier server.js qui déclenche le message suivant : Écoute de l'application Dolphin sur le port ${port} !.

      Nous pouvons exécuter l'exemple avec nodemon :

      Nous obtiendrons le résultat suivant sur le terminal:

      Output

      [nodemon] 1.17.3 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node server.js` Dolphin app listening on port 3000!

      Alors que l'exécution de nodemon est toujours cours, modifions le fichier server.js de manière à qu'il fasse apparaître le message suivant :Écoute de l'application Shark sur le port ${port} !

      Nous obtiendrons le résultat supplémentaire suivant sur le terminal :

      Output

      [nodemon] restarting due to changes... [nodemon] starting `node server.js` Shark app listening on port 3000!

      Le résultat qui apparaît sur le terminal de notre application Node.js s'affiche comme prévu. À tout moment, vous pouvez redémarrer le processus en saisissant rs et en appuyant sur ENTRÉE.

      Sinon, nodemon recherchera également le fichier main spécifié dans le fichier package.json de votre projet.

      package.json

      {
        // ...
        "main": "server.js",
        // ...
      }
      

      Ou, un script start :

      package.json

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

      Une fois que vous avez apporté vos modifications à package.json, vous pouvez alors appeler nodemon pour lancer l'application exemple en mode de surveillance sans avoir à passer par server.js.

      Étape 3 — Utilisation des options

      Vous pouvez modifier les paramètres de configuration disponibles sur nodemon.

      Passons en revue quelques-unes des principales options :

      • --exec: utilisez le commutateur --exec pour spécifier le binaire avec lequel exécuter le fichier. Par exemple, combiné au binaire ts-node, --exec peut s'avérer utile pour surveiller les modifications et exécuter les fichiers TypeScript.
      • --ext : spécifiez les différentes extensions de fichier à surveiller. Pour cette commutation, vous devez fournir une liste séparée par une virgule des extensions de fichiers (par exemple, --ext js,ts).
      • --delay : lorsqu'un fichier est modifié, nodemon attend par défaut 1 seconde pour redémarrer le processus. Cependant, vous pouvez utiliser le commutateur --delay pour modifier ce délai. Par exemple, avec nodemon --delay 3.2 votre délai sera de 3,2 secondes.
      • --watch : utilisez le commutateur --watch pour une surveillance sur plusieurs répertoires ou fichiers. Activez un commutateur --watch pour chaque répertoire que vous souhaitez surveiller. Par défaut, le répertoire actuel et ses sous-répertoires sont surveillés. Donc, vous pouvez utiliser --watch pour limiter la surveillance à des sous-répertoires ou des fichiers spécifiques.
      • --ignore : utilisez le commutateur --ignore pour ignorer certains fichiers, modèles de fichiers ou répertoires.
      • --verbose : un résultat plus complet avec des informations sur le ou les fichiers modifiés pour déclencher un redémarrage.

      Vous pouvez consulter toutes les options disponibles avec la commande suivante :

      À l'aide de ces options, créons la commande qui satisfait au scénario suivant :

      • surveiller le répertoire server
      • spécifier les fichiers avec l'extension .ts
      • ignorer les fichiers avec le suffixe .test.ts.
      • exécuter le fichier (server/server.ts) avec ts-node.
      • attendre trois secondes pour procéder au redémarrage après modification d'un fichier
      • nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts

      Cette commande combine les options --watch, --ext, --exec , --ignore, et --delay pour satisfaire aux conditions de notre scénario.

      Étape 4 — Utilisation des configurations

      Dans l'exemple précédent, l'ajout des commutateurs de configuration lors de l'exécution de nodemon est un exercice qui peut s'avérer être très fastidieux. Il existe une meilleure solution pour les projets qui nécessitent des configurations spécifiques. Elle consiste à spécifier ces configurations dans un fichier nodemon.json.

      Par exemple, voici les mêmes configurations que celles de notre exemple précédent de ligne de commande, mais placées dans un fichier nodemon.json :

      nodemon.json

      {
        "watch": ["server"],
        "ext": "ts",
        "ignore": ["*.test.ts"],
        "delay": "3",
        "execMap": {
          "ts": "ts-node"
        }
      }
      

      Notez que nous utilisons execMap au lieu du commutateur --exec. execMap vous permet de spécifier les binaires à utiliser pour obtenir certaines extensions de fichier.

      Ou alors, si vous ne souhaitez pas ajouter un fichier de configuration nodemon.json à votre projet, vous pouvez ajouter ces configurations dans un fichier package.json sous une clé nodemonConfig.

      package.json

      {
        "name": "test-nodemon",
        "version": "1.0.0",
        "description": "",
        "nodemonConfig": {
          "watch": [
            "server"
          ],
          "ext": "ts",
          "ignore": [
            "*.test.ts"
          ],
          "delay": "3",
          "execMap": {
            "ts": "ts-node"
          }
        },
        // ...
      

      Une fois que vous avez apporté ces modifications à nodemon.json ou package.json, vous pouvez alors lancer nodemon avec le script que vous souhaitez :

      nodemon récupérera les configurations et les utilisera. De cette façon, vos configurations pourront être enregistrées, partagées et répétées tout en évitant les erreurs de copier-coller ou de frappe dans la ligne de commande.

      Conclusion

      Cet article vous a permis d'apprendre à utiliser nodemon avec vos applications Node.js. Cet outil aide à automatiser le processus d'arrêt et de démarrage d'un serveur Node afin de pouvoir consulter les changements.

      Pour de plus amples informations sur les fonctionnalités et les erreurs de dépannage, consultez la documentation officielle.

      Si vous souhaitez en savoir plus sur Node.js, veuillez consulter notre page thématique Node.js dans laquelle vous trouverez des exercices et des projets de programmation.





      Source link

      Como reiniciar seus aplicativos Node.js automaticamente com o nodemon


      Introdução

      No Node.js, é necessário reiniciar o processo para fazer com que as alterações sejam ativadas. Isso adiciona um passo extra ao seu fluxo de trabalho para que as alterações sejam realizadas. É possível eliminar esse passo extra usando o nodemon para reiniciar o processo automaticamente.

      O nodemon é um utilitário de interface de linha de comando (CLI) desenvolvido pelo @rem que encapsula seu aplicativo Node, monitora o sistema de arquivos e reinicia o processo automaticamente.

      Neste artigo, você irá aprender sobre a instalação e configuração do nodemon.

      Pré-requisitos

      Se quiser acompanhar os passos deste artigo, será necessário:

      Passo 1 — Instalando o nodemon

      Primeiro, você precisará instalar o nodemon em sua máquina. Instale o utilitário globalmente ou localmente em seu projeto usando o npm ou o Yarn:

      Instalação global

      Instale o nodemon globalmente com o npm:

      Ou com o Yarn:

      Instalação local

      Instale o nodemon localmente com o npm. Ao executar uma instalação local, podemos instalar o nodemon como uma dependência de desenvolvimento com --save-dev (ou --dev):

      • npm install nodemon --save-dev

      Ou com o Yarn:

      Em relação à instalação local, fique ciente de que não será possível usar o comando nodemon diretamente da linha de comando:

      Output

      • command not found: nodemon

      No entanto, você pode usá-lo como parte de alguns scripts do npm ou com o npx.

      Isso conclui o processo de instalação do nodemon. Em seguida, vamos usar o nodemon com os nossos projetos.

      Podemos usar o nodemon para iniciar um script do Node. Por exemplo, se tivermos uma configuração do servidor Express em um arquivo server.js, podemos iniciá-la e monitorar alterações desta forma:

      Você pode passar os argumentos da mesma forma que faria se estivesse executando o script com o Node:

      Cada vez que você faz uma alteração em um arquivo com uma das extensões monitoradas padrão (.js, .mjs, .json, .coffee ou .litcoffee) no diretório atual ou em um subdiretório, o processo será reiniciado.

      Vamos supor que escrevemos um arquivo server.js de exemplo que entrega a mensagem: Dolphin app listening on port ${port}!.

      Podemos executar o exemplo com o nodemon:

      Vemos o seguinte resultado no terminal:

      Output

      [nodemon] 1.17.3 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node server.js` Dolphin app listening on port 3000!

      Embora o nodemon ainda esteja sendo executado, vamos alterar o arquivo server.js para exibir a mensagem: Shark app listening on port ${port}!.

      Vemos o seguinte resultado adicional no terminal:

      Output

      [nodemon] restarting due to changes... [nodemon] starting `node server.js` Shark app listening on port 3000!

      O resultado do terminal do nosso aplicativo Node.js está sendo exibido como esperado. Reinicie o processo a qualquer momento digitando rs e apertando ENTER.

      De maneira alternativa, o nodemon também irá procurar um arquivo main especificado no arquivo package.json do seu projeto:

      package.json

      {
        // ...
        "main": "server.js",
        // ...
      }
      

      Ou, um script start:

      package.json

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

      Depois de fazer as alterações no package.json, chame o nodemon para iniciar o aplicativo de exemplo no modo de monitoramento sem precisar passar o server.js.

      Passo 3 — Usando opções

      É possível modificar as configurações disponíveis no nodemon.

      Vamos aprender um pouco sobre as opções principais:

      • --exec: use a opção --exec para especificar um binário com qual será executado o arquivo. Por exemplo, quando combinado com o binário ts-node, o --exec pode tornar-se útil para monitorar alterações e executar os arquivos do TypeScript.
      • --ext: especifique as diferentes extensões de arquivo a serem monitoradas. Para essa opção, forneça uma lista separada por vírgulas de extensões de arquivos (por exemplo, --ext js,ts).
      • --delay: por padrão, o nodemon espera um segundo para reiniciar o processo quando um arquivo é alterado, mas com a opção --delay é possível especificar um atraso diferente. Por exemplo, nodemon --delay 3.2 para um atraso de 3.2 segundos.
      • --watch: use a opção --watch para especificar vários diretórios ou arquivos a serem monitorados. Adicione uma opção --watch para cada diretório que deseja monitorar. Por padrão, o diretório atual e seus subdiretórios são observados. Dessa forma, utilize o --watch para arquivos ou subdiretórios específicos.
      • --ignore: use a opção --ignore para ignorar certos arquivos, padrões de arquivos ou diretórios.
      • --verbose: um resultado mais detalhado com informações sobre os arquivos alterados para disparar um reinício.

      Visualize todas as opções disponíveis com o seguinte comando:

      Usando essas opções, vamos criar o comando para satisfazer o seguinte cenário:

      • monitorando o diretório server
      • especificando os arquivos com uma extensão .ts
      • ignorando os arquivos com um sufixo .test.ts
      • executando o arquivo (server/server.ts) com o ts-node
      • esperando três segundos para reiniciar após um arquivo é alterado
      • nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts

      Esse comando combina as opções --watch, --ext, --exec, --ignore e --delay para satisfazer as condições para o nosso cenário.

      Passo 4 — Usando configurações

      No exemplo anterior, adicionar as opções de configuração ao executar o nodemon pode ser um processo bastante enfadonho. Uma solução melhor para projetos que precisam de configurações específicas é definir essas configurações em um arquivo nodemon.json.

      Por exemplo, aqui estão as mesmas configurações do exemplo de linha de comando anterior, mas colocadas em um arquivo nodemon.json:

      nodemon.json

      {
        "watch": ["server"],
        "ext": "ts",
        "ignore": ["*.test.ts"],
        "delay": "3",
        "execMap": {
          "ts": "ts-node"
        }
      }
      

      Observe o uso do execMap ao invés da opção --exec. O execMap permite que você especifique os binários que devem ser usados para determinadas extensões de arquivo.

      De maneira alternativa, se preferir não adicionar um arquivo de configuração nodemon.json ao seu projeto, adicione essas configurações ao arquivo package.json sob uma chave nodemonConfig:

      package.json

      {
        "name": "test-nodemon",
        "version": "1.0.0",
        "description": "",
        "nodemonConfig": {
          "watch": [
            "server"
          ],
          "ext": "ts",
          "ignore": [
            "*.test.ts"
          ],
          "delay": "3",
          "execMap": {
            "ts": "ts-node"
          }
        },
        // ...
      

      Depois de fazer as alterações no nodemon.json ou no package.json, inicie então o nodemon com o script desejado:

      O nodemon irá captar as configurações e usá-las. Dessa forma, suas configurações podem ser salvadas, compartilhadas e repetidas para evitar erros de copiar e colar ou de digitação na linha de comando.

      Conclusão

      Neste artigo, você explorou como usar o nodemon com seus aplicativos Node.js. Essa ferramenta ajuda a automatizar o processo de interromper e iniciar um servidor Node para visualizar as alterações.

      Para mais informações sobre os recursos disponíveis e correção de problemas, consulte a documentação oficial.

      Se quiser aprender mais sobre o Node.js, confira nossa página de tópico do Node.js para exercícios e projetos de programação.





      Source link

      Как автоматически перезапускать приложения Node.js с помощью nodemon


      Введение

      В Node.js для вступления изменений в силу необходимо перезапустить процесс. Это добавляет в рабочий процесс дополнительный шаг, необходимый для внесения изменений. Вы можете устранить этот дополнительный шаг, используя nodemon для автоматического перезапуска процесса.

      nodemon — это утилита командной строки, разработанная @rem. Она заключает в оболочку ваше приложение Node, наблюдает за файловой системой и автоматически перезапускает процесс.

      Из этой статьи вы узнаете об установке и настройке nodemon.

      Предварительные требования

      Если вы захотите следовать за этой статьей, вам потребуется следующее:

      Шаг 1 — Установка nodemon

      Вначале вам нужно будет установить nodemon на вашем компьютере. Установите утилиту в проекте глобально или локально, используя npm или Yarn:

      Глобальная установка

      Вы можете установить nodemon глобально с помощью npm:

      Или с помощью Yarn:

      Локальная установка

      Также вы можете установить nodemon локально с помощью npm. При локальной установке мы можем установить nodemon как зависимость dev с помощью --save-dev (или --dev):

      • npm install nodemon --save-dev

      Или с помощью Yarn:

      При локальной установке нужно знать, сможете ли вы использовать команду nodemon напрямую из командной строки:

      Output

      • command not found: nodemon

      Однако вы также можете использовать его как часть некоторых скриптов npm или с npx.

      На этом процесс установки nodemon завершен. Далее мы будем использовать nodemon с нашими проектами.

      Шаг 2 — Настройка образца проекта Example Express с помощью nodemon

      Мы можем использовать nodemon для запуска скрипта Node. Например, если у нас имеется настройка сервера Express в файле server.js, мы можем запустить его и наблюдать за изменениями следующим образом:

      Вы можете передавать аргументы точно так же, как если бы запускали скрипт с помощью Node:

      Процесс перезапускается каждый раз, когда вы вносите изменение в файл с одним из отслеживаемых по умолчанию расширений (.js, .mjs, .json, .coffee или .litcoffee) в текущем каталоге или подкаталоге.

      Допустим мы записываем образец файла server.js, который выводит сообщение: Dolphin app listening on port ${port}!.

      Мы можем запустить пример с помощью nodemon:

      Мы видим следующий вывод на терминале:

      Output

      [nodemon] 1.17.3 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node server.js` Dolphin app listening on port 3000!

      Пока nodemon еще работает, внесем изменение в файл server.js для вывода сообщения: Shark app listening on port ${port}!.

      Мы увидим следующий дополнительный вывод на терминале:

      Output

      [nodemon] restarting due to changes... [nodemon] starting `node server.js` Shark app listening on port 3000!

      Вывод приложения Node.js на терминале отображается, как и ожидалось. Вы можете перезапустить процесс в любое время, набрав rs и нажав ENTER.

      Также nodemon будет искать файл main, заданный в файле package.json вашего проекта:

      package.json

      {
        // ...
        "main": "server.js",
        // ...
      }
      

      Или скрипт start:

      package.json

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

      После внесения изменений в package.json вы сможете вызывать nodemon для запуска образца приложения в режиме наблюдения без его передачи в server.js.

      Шаг 3 — Использование опций

      Вы можете изменить параметры конфигурации, доступные nodemon.

      Рассмотрим несколько основных опций:

      • --exec: используйте оператор --exec, чтобы задать двоичный код для выполнения файла. Например, в сочетании с двоичным кодом ts-node оператор --exec может быть полезен для наблюдения за изменениями и запуска файлов TypeScript.
      • --ext: задает различные расширения файлов для наблюдения. Для этого оператора требуется указать разделенный запятыми список расширений файлов (например, --ext js,ts).
      • --delay: по умолчанию nodemon ожидает одну секунду для перезапуска процесса после изменения файла, однако с помощью оператора --delay вы можете указать другое время задержки. Например, nodemon --delay 3.2 для задержки 3,2 секунды.
      • --watch: используйте оператор --watch, чтобы задать несколько каталогов или файлов для наблюдения. Добавляйте один оператор --watch для каждого каталога, за которым вы хотите наблюдать. По умолчанию вы наблюдаете за текущим каталогом и его подкаталогами, а с помощью --watch вы можете сузить область наблюдения до нескольких отдельных подкаталогов или файлов.
      • --ignore: используйте оператор --ignore, чтобы игнорировать определенные файлы, шаблоны файлов или каталоги.
      • --verbose: более развернутый вывод с информацией о том, какие файлы изменились, для активации перезапуска.

      Вы можете просмотреть все доступные опции с помощью следующей команды:

      Используя эти опции, создадим команду для соответствия следующему сценарию:

      • наблюдение за каталогом server
      • указание файлов с расширением .ts
      • игнорирование файлов с суффиксом .test.ts
      • выполнение файла (server/server.ts) с ts-node
      • ожидание перезапуска в течение трех секунд после изменения файла
      • nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts

      Эта команда комбинирует опции --watch, --ext, --exec, --ignore и --delay, чтобы выполнить условия для нашего сценария.

      Шаг 4 — Использование конфигураций

      В предыдущем примере добавление параметров конфигурации при выполнении nodemon может оказаться довольно затруднительным. Лучшее решение для проектов, требующих определенных конфигураций, — задать эти конфигурации в файле nodemon.json.

      Например, здесь приведены те же конфигурации, что и в предыдущем примере командной строки, но они содержатся в файле nodemon.json:

      nodemon.json

      {
        "watch": ["server"],
        "ext": "ts",
        "ignore": ["*.test.ts"],
        "delay": "3",
        "execMap": {
          "ts": "ts-node"
        }
      }
      

      Обратите внимание, что execMap используется вместо оператора --exec. execMap позволяет задавать двоичный код, который следует использовать для определенных расширений файлов.

      Если вы предпочитаете не добавлять в проект файл конфигурации nodemon.json, вы можете добавить эти конфигурации в файл package.json в ключ nodemonConfig:

      package.json

      {
        "name": "test-nodemon",
        "version": "1.0.0",
        "description": "",
        "nodemonConfig": {
          "watch": [
            "server"
          ],
          "ext": "ts",
          "ignore": [
            "*.test.ts"
          ],
          "delay": "3",
          "execMap": {
            "ts": "ts-node"
          }
        },
        // ...
      

      Когда вы внесете изменения в nodemon.json или package.json, вы сможете запускать nodemon с помощью желаемого скрипта:

      nodemon подбирает конфигурации и использует их. Это позволяет сохранять конфигурации, делиться ими и воспроизводить их, чтобы избежать ошибок при копировании и вставке или ошибок ввода в командной строке.

      Заключение

      В этой статье мы рассмотрели использование nodemon с приложениями Node.js. Этот инструмент поможет автоматизировать процесс остановки и запуска сервера Node для просмотра изменений.

      Дополнительную информацию о доступных характеристиках и ошибках при диагностике и устранении неисправностей можно найти в официальной документации.

      Если вы хотите узнать больше о Node.js, на странице темы Node.js вы найдете упражнения и проекты программирования.





      Source link