One place for hosting & domains

      reiniciar

      Cómo reiniciar sus aplicaciones Node.js automáticamente con nodemon


      Introducción

      En Node.js, debe reiniciar el proceso para que los cambios surtan efecto. Eso añade un otro paso a su flujo de trabajo para que los cambios surtan efecto. Puede eliminar este paso adicional usando nodemon para reiniciar el proceso automáticamente.

      nodemon es una utilidad de interfaz de línea de comandos (CLI) desarrollada por @rem que envuelve su aplicación Node, vigila el sistema de archivos y reinicia automáticamente el proceso.

      En este artículo, aprenderá cómo instalar, preparar y configurar nodemon.

      Requisitos previos

      Si desea seguir este artículo, necesitará:

      Paso 1: Instalar nodemon

      Primero, deberá instalar nodemon en su equipo. Instale la utilidad global o localmente en su proyecto usando nom o Yarn:

      Instalación global

      Puede instalar nodemon globalmente con npm:

      O con Yarn:

      Instalación local

      También puede instalar nodemon localmente con npm. Cuando realice una instalación local, podemos instalar nodemon como dependencia dev con --save-dev (o --dev):

      • npm install nodemon --save-dev

      O con Yarn:

      Algo que debe tenerse en cuenta con una instalación local es que no podrá usar el comando nodemon directamente desde la línea de comandos:

      Output

      • command not found: nodemon

      Sin embargo, puede usarlo como parte de algunas secuencias de comandos de npm o con npx.

      Con esto finalizará el proceso de instalación de nodemon. A continuación, usaremos nodemon con nuestros proyectos.

      Paso 2: Configurar un proyecto Express de ejemplo con nodemon

      Puede usar nodemon para iniciar una secuencia de comandos de Node. Por ejemplo, si tenemos una configuración de servidor Express en un archivo server.js, podemos iniciarlo y vigilar los cambios de esta forma:

      Puede pasar argumentos de la misma forma que si estuviese ejecutando la secuencia de comandos con Node:

      Cada vez que realice un cambio a un archivo con una de las extensiones vigiladas por defecto (.js, .mjs, .json, .coffee o .litcoffee) en el directorio actual o en un subdirectorio, el proceso se reiniciará.

      Vamos a suponer que escribimos un archivo server.js de ejemplo que da como resultado el mensaje Dolphin app listening on port ${port}!.

      Podemos ejecutar el ejemplo con nodemon:

      Vemos el siguiente resultado del 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!

      Aunque nodemon aún está ejecutándose, vamos a realizar un cambio al archivo server.js para que dé como resultado el mensaje: Shark app listening on port ${port}!.

      Vemos el siguiente resultado adicional del terminal:

      Output

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

      El resultado del terminal desde nuestra aplicación Node.js se muestra como se espera. Puede reiniciar el proceso en cualquier momento escribiendo rs y presionando ENTER.

      Como alternativa, nodemon también buscará un archivo main especificado en el archivo package.json de su proyecto:

      package.json

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

      O una secuencia de comandos start:

      package.json

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

      Una vez que realice los cambios a package.json, puede invocar nodemon para iniciar la aplicación de ejemplo en modo de vigilancia sin tener que pasar server.js.

      Paso 3: Usar las opciones

      Puede modificar los ajustes de configuración disponibles para nodemon.

      Vamos a repasar algunas de las opciones principales:

      • --exec: Utilice el interruptor --exec para especificar un binario con el que ejecutar el archivo. Por ejemplo, cuando se combina con el binario ts-node, --exec puede ser útil para vigilar los cambios y ejecutar archivos TypeScript.
      • --ext: Especifique diferentes extensiones de archivo que vigilar. Para este interruptor, proporcione una lista separada por comas de extensiones de archivo (por ejemplo, --ext.js,ts).
      • --delay: Por defecto, nodemon espera un segundo para reiniciar el proceso cuando un archivo cambia, pero puede especificar un retraso diferente con el interruptor --delay. Por ejemplo, nodemon --delay 3.2 para un retraso de 3,2 segundos.
      • --watch: Utilice el interruptor --watch para especificar múltiples directorios o archivos que vigilar. Añada un interruptor --watch para cada directorio que desee vigilar. Por defecto, el directorio actual y sus subdirectorios se vigilan, de forma que con --watch puede estrechar eso a solo subdirectorios o archivos específicos.
      • --ignore: Utilice el interruptor --ignore para ignorar ciertos archivos, patrones de archivo o directorios.
      • --verbose: Un resultado con más texto con información sobre qué archivos cambiaron para activar un reinicio.

      Puede ver todos las opciones disponibles con el siguiente comando:

      Usando estas opciones, vamos a crear el comando para satisfacer el siguiente escenario:

      • vigilar el directorio del servidor
      • “especificando
      • ignorar archivos con un sufijo .test.ts
      • ejecutar el archivo (server/server.ts) con ts-node
      • esperar tres segundos para reiniciar tras un cambio de archivo
      • nodemon --watch server --ext ts --exec ts-node --ignore '*.test.ts' --delay 3 server/server.ts

      Este comando combina las opciones --watch, --ext, --exec, --ignore y --delay para satisfacer las condiciones de nuestro escenario.

      Paso 4: Usar las configuraciones

      En el ejemplo anterior, añadir interruptores de configuración cuando se ejecuta nodemon puede ser algo tedioso. Una mejor solución para los proyectos que necesitan configuraciones específicas es especificar estas configuraciones en un archivo nodemon.json.

      Por ejemplo, aquí están las mismas configuraciones que en el ejemplo de línea de comandos anterior, pero colocados en un archivo nodemon.json:

      nodemon.json

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

      Observe el uso de execMap en vez del interruptor --exec. execMap le permite especificar binarios que deberían usarse dadas algunas extensiones de archivo.

      Alternativamente, si prefiere no añadir un archivo de configuración nodemon.json a su proyecto, puede añadir estas configuraciones al archivo package.json bajo la clave 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"
          }
        },
        // ...
      

      Una vez que realice los cambios a nodemon.json o package.json, puede iniciar nodemon con la secuencia de comandos deseada:

      nodemon recogerá las configuraciones y las utilizará. De esta forma puede guardar, compartir y repetir sus configuraciones para evitar copiar y pegar o escribir errores en la línea de comandos.

      Conclusión

      En este artículo, ha explorado cómo usar nodemon con sus aplicaciones Node.js. Esta herramienta ayuda a automatizar el proceso de detener e iniciar un servidor Node para ver los cambios.

      Para obtener más información sobre las funciones disponibles y resolver problemas, consulte la documentación oficial.

      Si desea saber más sobre Node.js, consulte nuestra página del tema Node.js para consultar ejercicios y proyectos de programación.





      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