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:
-
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'
-
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'
-
Recursos Experimentais:
--experimental-fetch: Habilita a API experimentalfetch.--experimental-specifier-resolution: Define o comportamento de resolução de módulos ES.- Exemplo:
NODE_OPTIONS='--experimental-fetch'
-
Outras Configurações:
--require <module>: Carrega um módulo específico antes de qualquer script.- Exemplo:
NODE_OPTIONS='--require dotenv/config'
Notas importantes:
-
Portabilidade: A forma de definir
NODE_OPTIONSvaria 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
- Linux/Mac:
-
Impacto Global: As opções definidas em
NODE_OPTIONSafetam 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.