Skip to main content

NODE_OPTIONS

  • NODE_OPTIONS

O campo node_options não é uma configuração direta do package.json, mas refere-se a uma variável de ambiente chamada NODE_OPTIONS que pode ser usada para passar opções de execução diretamente para o Node.js. Ela é particularmente útil para configurar o comportamento do Node.js sem precisar alterar diretamente o código ou os scripts do seu projeto.

Embora não seja um campo nativo do package.json, você pode usar o NODE_OPTIONS em combinação com os scripts definidos no package.json. Isso permite configurar o ambiente de execução do Node.js diretamente no comando.

Exemplo de uso no package.json

Vamos supor que você queira ativar o garbage collector (--max-old-space-size) ou depuração no Node.js. Você pode configurar isso nos scripts do package.json usando a variável de ambiente NODE_OPTIONS:

{
"scripts": {
"start": "NODE_OPTIONS='--max-old-space-size=4096' node server.js",
"test": "NODE_OPTIONS='--experimental-specifier-resolution=node' jest"
}
}

O que você pode passar com NODE_OPTIONS?

Aqui estão algumas opções comuns:

  1. Memória:

    • --max-old-space-size: Ajusta o limite máximo de memória usado pelo Node.js.
    • Exemplo: NODE_OPTIONS='--max-old-space-size=4096'
  2. Depuração e Logging:

    • --inspect: Inicia o depurador do Node.js.
    • --trace-deprecation: Mostra rastreamentos completos para mensagens de depreciação.
    • Exemplo: NODE_OPTIONS='--inspect'
  3. Recursos Experimentais:

    • --experimental-fetch: Habilita a API experimental fetch.
    • --experimental-specifier-resolution: Define o comportamento de resolução de módulos ES.
    • Exemplo: NODE_OPTIONS='--experimental-fetch'
  4. Outras Configurações:

    • --require <module>: Carrega um módulo específico antes de qualquer script.
    • Exemplo: NODE_OPTIONS='--require dotenv/config'

Notas importantes:

  1. Portabilidade: A forma de definir NODE_OPTIONS varia de acordo com o sistema operacional:

    • Linux/Mac: NODE_OPTIONS='--max-old-space-size=4096' node script.js
    • Windows (com cmd): set NODE_OPTIONS=--max-old-space-size=4096 && node script.js
  2. Impacto Global: As opções definidas em NODE_OPTIONS afetam todas as instâncias do Node.js no ambiente onde foram definidas.

Conclusão

O NODE_OPTIONS é uma ferramenta poderosa para ajustar o comportamento do Node.js sem alterar o código diretamente. Ao combiná-lo com os scripts do package.json, você pode tornar seu ambiente de execução mais configurável e adequado às necessidades do projeto.