Boas Práticas Fundamentais do Node.js
Uma lista de verificação para executar serviços Node.js com segurança em produção - disciplina de versão, higiene de ambiente e respeito ao modelo de thread única.
Busque em todas as páginas da documentação
Uma lista de verificação para executar serviços Node.js com segurança em produção - disciplina de versão, higiene de ambiente e respeito ao modelo de thread única.
engines em package.json e aplique em CI. Use engine-strict=true ou um script de gate de pré-instalação..nvmrc ou .node-version e combine com as imagens base do Docker. node:24.18.0-bookworm-slim, não node:latest.process.version na inicialização e exponha em /health. Acelera a triagem de incidentes quando frotas divergem."type": "module"). Documente qualquer exceção de CJS com um ADR.node: para imports embutidos. import fs from 'node:fs/promises' clarifica a intenção.fetch embutido, node:test e node:assert antes de equivalentes do npm. Menos superfícies de cadeia de suprimentos.package-lock.json committado e use npm ci em CI. Instalações reproduzíveis entre máquinas.process.env após o boot, exceto em testes. Trate env como configuração imutável.AsyncLocalStorage para contexto de requisição.NODE_ENV=production em ambientes implantados. Algumas bibliotecas mudam o comportamento com base nisso.process.env. Redija em logs estruturados.SIGTERM e SIGINT para desligamento gracioso. Feche servidores e pools de DB antes de sair.process.on('unhandledRejection') para registrar e sair.JSON.parse enormes.node.--trace-warnings e --trace-deprecation em CI. Capture dívidas de upgrade antes da produção.process.report). Pratique antes da primeira página às 3 da manhã.A deriva de versão é a causa raiz da maioria dos incidentes "funciona localmente" - APIs incorretas, falhas em builds nativos e patches de segurança incompatíveis.
Novos serviços devem usar ESM no Node 24. CJS é manutenção legada - exceções precisam de um ADR e data de descontinuação.
Muitas bibliotecas (Express em modo de produção, alguns formatadores de log) ainda se ramificam com base nele. Defina explicitamente - não confie na ausência.
>=24.18.0 <25 para Node 24 Active LTS. Durante a migração, documente um intervalo duplo temporário com uma data de expiração.
Trate severidades críticas/altas como bloqueadores. A lista de Fundamentos foca no runtime; consulte a seção de Segurança para a política completa.
Orquestradores podem reiniciar pods com imagens desatualizadas. A saída de health prova que o binário em execução corresponde ao patch pretendido.
Singletons em nível de módulo (pool de DB, configuração) são aceitáveis. Dados por requisição em globais não são - use AsyncLocalStorage.
Adicione ao .npmrc:
engine-strict=true
Permitido se a produção permanecer com Node 24 fixado e a CI testar contra o runtime de produção - não atalhos apenas de dev.
A cada release candidate e dentro de uma semana de qualquer aviso de segurança do Node que afete sua linha major.
Não. Esta lista cobre os fundamentos; combine com Melhores Práticas do Event Loop para desempenho assíncrono.
status, versão do node, e SHA de build/git. Opcional: campo ltsPolicy do seu script de version gate.
Versões de Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5, e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026