E foi lançado o Node.js 20 com motor V8 atualizado, e muito mais. Confira as novidades e veja como instalar no Linux.
Node.js é uma plataforma que pode ser usada tanto para o suporte do servidor de aplicativos da web quanto para a criação de programas comuns de rede de servidor e cliente.
O Node.js é um ambiente de tempo de execução de plataforma cruzada, código-fonte aberto, baseado na linguagem de programação JavaScript, assíncrono, com E/S de dados em uma arquitetura orientada a eventos e baseado no mecanismo V8 Node.js. Google.
Para estender a funcionalidade dos aplicativos para Node.js, foi preparada uma grande coleção de módulos, na qual você pode encontrar módulos com a implementação de servidores e clientes HTTP e SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para integração com várias estruturas da web, drivers WebSocket e Ajax, conectores DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mecanismos de modelo, mecanismos CSS, implementação de algoritmos criptográficos e sistemas de autorização (OAuth), analisadores XML.
Enfim, o Node.js é um framework para rodar aplicações de rede em JavaScript.
E para aqueles que são novos na plataforma Node.js, você deve saber que ela pode ser usada tanto para manter servidores de aplicativos da Web quanto para criar programas regulares de rede de cliente e servidor.
Para estender a funcionalidade dos aplicativos para Node.js, foi preparada uma grande coleção de módulos, na qual você pode encontrar módulos com a implementação de servidores e clientes.
Agora, foi anunciado o lançamento da nova versão do Node.js 20.0. Esta nova versão do Node.js 20.0 foi atribuída ao ramo de suporte longo, mas esse status não será atribuído até outubro, após a estabilização.
Novidades do Node.js 20
Nesta nova versão do Node.js 20.0, o motor V8 foi atualizado para a versão 11.3 usada no Chromium 113, que inclui várias alterações em relação ao ramo que usava o motor Chromium 107, as funções String.prototype.isWellFormed e toWellFormed, Array.prototype e TypedArray.prototype possuem métodos para trabalhar com cópia na mudança de objetos Array e TypedArray, sinalizador “v” em RegExp, suporte para redimensionar o ArrayBuffer e aumentar o tamanho do final da chamada SharedArrayBuffer no WebAssembly.
Outra das mudanças que se destaca no Node.js 20 é que foi proposto um mecanismo de modelo de permissão experimental que permite restringir o acesso a determinados recursos durante a execução.
O suporte para o modelo de permissões é ativado especificando o sinalizador “--experimental-permission
” durante a execução.
Além disso, é destacado no Node.js 20.0 que os drivers para módulos ECMAScript externos (ESM) carregados por meio da opção “--experimental-loader
” agora são executados em um thread separado, isolado do thread principal, eliminando a interseção do código do aplicativo e o módulos ESM carregados.
Semelhante aos navegadores, o método import.meta.resolve() agora é executado de forma síncrona quando chamado de um aplicativo. Em uma das próximas ramificações do Node.js, o suporte de carga ESM está planejado para ser movido para a categoria de recursos estáveis.
Também notável é que uma equipe de desempenho separada foi formada e, em preparação para a nova ramificação, trabalhou para acelerar vários componentes de tempo de execução, incluindo análise de URL, fetch() e EventTarget.
Por exemplo, a sobrecarga de inicialização de EventTarget foi reduzida pela metade, o desempenho do método URL.canParse() foi significativamente aprimorado e a eficiência dos cronômetros foi aprimorada.
Além disso, o pacote inclui o lançamento de um analisador de URL de alto desempenho: Ada 2.0, escrito em C++.
Por outro lado, destaca-se a continuidade do desenvolvimento de uma função experimental para entrega de aplicativos na forma de um único arquivo executável (SEA, Single Executable Applications).
A criação de um arquivo executável agora requer a substituição de um blob gerado a partir de um arquivo de configuração JSON (em vez de substituir um arquivo JavaScript).
Das outras mudanças que se destacam da nova versão:
- Na implementação inicial, foram propostas opções para restringir o acesso à escrita (allow-fs-write) e a leitura (allow-fs-read) a certas partes do FS, processos secundários (–allow-child-process), adições (–no-addons) e subprocessos (–allow-worker).
- O módulo de node:test (test_runner), projetado para criar e executar testes JavaScript que produzem resultados no formato TAP (Test Anything Protocol), foi movido para stable.
Suporte aprimorado da Web Crypto API com implementações de outros projetos.
O suporte oficial para Windows foi adicionado em sistemas ARM64. - Compatibilidade contínua com as extensões WASI (WebAssembly System Interface) para criar aplicações independentes do WebAssembly. A necessidade de especificar um indicador de linha de comando especial foi eliminada para permitir a compatibilidade WASI.
O Node.js 20.x terá suporte até 30 de abril de 2026. A ramificação LTS 18.x mais antiga do Node.js terá suporte até abril de 2025, e a ramificação LTS 16.x mais antiga até setembro de 2023.
Para saber mais sobre essa versão do Node.js, acesse a nota de lançamento.
Como instalar ou atualizar o Node.js
Para instalar a versão mais recente do Node.js nas principais distribuições Linux, use esse tutorial:
Descubra como instalar o Node.js no Linux nativamente
Veja como instalar o interpretador Node.js no Linux via Snap
Como instalar o Nodejs no Ubuntu 19.10 e derivados