Pular para o conteúdo

Node.js 27 alpha traz o V8 15.6 e abandona o OpenSSL antigo

A primeira alpha do Node.js 27, lançada em 29 de outubro, atualiza o V8 para a versão 15.6, exige OpenSSL 3 ou posterior e inicia o novo ritmo de uma versão principal por ano.

Por

3 min de leitura

XLinkedIn

Traduzido automaticamente do original em inglês, que Claire Whitmore verificou e editou. Prevalece a versão em inglês. Como trabalhamos

Screenshot of the Node.js blog post for 27.0.0-alpha.0.0.0, with the Node.js logo graphic and the release notes' table of contents beside it.

Em números

semver-major commits in the first alpha
~100
JavaScript engine, up from 14.6 in Node.js 26
V8 15.6
planned date for Node.js 27.0.0
April 2027
planned end of life for Node.js 27
April 2030

O projeto Node.js lançou em 29 de outubro de 2026 a primeira alpha do Node.js 27, com a tag 27.0.0-alpha.0.0.0. É o primeiro build sob o novo cronograma do Node, com uma versão principal por ano. A alpha atualiza o motor JavaScript V8 para a versão 15.6, exige OpenSSL 3 ou posterior e traz cerca de 100 commits semver-major, ou seja, mudanças que podem quebrar código existente.

A alpha não se destina à produção. Ela é voltada a autores de bibliotecas e a equipes que querem encontrar mudanças incompatíveis em seus pipelines de teste, meses antes de o Node.js 27.0.0 chegar em abril de 2027.

O novo cronograma de lançamentos

Até agora, o Node.js lançava duas versões principais por ano, e só as de número par recebiam suporte de longo prazo (LTS). A partir do Node.js 27, há uma versão principal por ano e todas se tornam LTS, segundo o post do projeto sobre o cronograma.

Cada versão passa agora seis meses como alpha, de outubro a março. Mudanças semver-major continuam permitidas nesse período. Ao contrário dos builds nightly, os builds alpha são assinados, marcados com tag e testados, mas suas APIs podem mudar entre lançamentos.

EtapaNode.js 27
Início da alphaoutubro de 2026
27.0.0 (Current)abril de 2027
Entra em LTSoutubro de 2027
Fim de vidaabril de 2030

O LTS continua durando cerca de 30 meses, e cada linha tem 36 meses desde o primeiro lançamento Current até o fim de vida. O Node.js 26 é a última linha do modelo antigo. O projeto diz que o cronograma "não é final e pode ser alterado".

A mudança nasceu de uma proposta que o membro do TSC Rafael Gonzaga abriu em julho de 2025, informou a InfoQ. O objetivo era aliviar a carga dos mantenedores, que precisavam portar correções para linhas de lançamento pouco usadas. Gonzaga também escreveu o post do lançamento da alpha.

O que quebra na alpha

As notas de lançamento listam um longo conjunto de mudanças. Estas são as que mais provavelmente afetam apps reais:

  • OpenSSL 3 ou posterior é obrigatório. O Node.js agora inclui o OpenSSL 4.1.0, que saiu em 23 de outubro com DTLS 1.3. O suporte a engines do OpenSSL acabou.
  • Addons nativos precisam ser recompilados. NODE_MODULE_VERSION agora é 153.
  • Novo limite de memória padrão. Sem --max-old-space-size, o limite do heap é metade da memória física, entre 256 MB e 4 GB. A memória de Buffer e ArrayBuffer agora conta para esse limite.
  • Um novo formato de serialização. Dados escritos por v8.serialize(), structuredClone() e postMessage() não podem ser lidos por versões mais antigas do Node.js.
  • Os padrões de HTTP mudaram. O keepAliveTimeout padrão sobe para 65 segundos, e req.headers agora tem protótipo nulo.
  • Macs Intel agora são experimentais. O binário do macOS para Intel aparece como "Coming soon".
  • O npm 12.1.0 está incluído.

O V8 15.6 também muda alguns comportamentos pequenos. As funções Math agora usam a biblioteca libm do LLVM, então os resultados podem diferir no último bit. Arrays grandes são ordenados com um novo algoritmo, embora a ordenação continue estável. Entre os novos recursos estão Math.sumPrecise() e Iterator.zip().

O módulo domain agora está obsoleto em tempo de execução, e uma flag de permissão, --allow-env, foi adicionada.

As imagens Docker ainda não estão prontas

Equipes que testam em contêineres terão de esperar até que isso seja resolvido. Os mantenedores das imagens oficiais do Docker fecharam a issue de acompanhamento do Node.js 27 em 30 de outubro, dizendo que não havia informação suficiente para se preparar a tempo. Eles planejam abrir uma nova issue para definir como as imagens alpha serão marcadas com tags.

A string de versão também difere do plano. Os documentos de planejamento usavam exemplos como 27.0.0-alpha.1, mas o primeiro build saiu como 27.0.0-alpha.0.0.0.

O que isso significa para desenvolvedores

  • Adicionem a alpha ao CI agora, não em abril. O projeto pediu que autores de bibliotecas façam isso o quanto antes. Um job alpha que falha dá a vocês seis meses para corrigir problemas antes da 27.0.0.
  • Recompilem e verifiquem os módulos nativos. A nova versão de módulo significa que todo addon nativo precisa de uma compilação nova para o Node.js 27.
  • Testem tudo que armazena dados serializados. Se um serviço escreve com v8.serialize() e um mais antigo lê, o novo formato vai quebrar esse caminho.
  • Definam limites de heap explicitamente em contêineres. O novo padrão liga a memória à RAM física do host, que pode não corresponder ao limite do seu contêiner.
  • Se vocês só usam LTS, pouco muda por enquanto. O Node.js 26 é a linha LTS, na 26.13.0 quando a alpha saiu. Continuem aplicando seus patches, como na versão de segurança de outubro que corrigiu 10 falhas.

Fontes

  1. Node.js 27.0.0-alpha.0.0.0 (Alpha) - Node.js
  2. Evolving the Node.js Release Schedule - Node.js
  3. Node.js Moves to Annual Major Releases - InfoQ
  4. Prepare for Node.js 27 pre-release (Alpha) / release - GitHub (nodejs/docker-node)

Artigos relacionados