- O Comitê Diretor Técnico (TSC) do Node.js decidiu oficialmente, por votação, que o Corepack não será mais incluído na distribuição do Node.js
- A mudança passa a valer a partir do Node.js 25, enquanto no Node.js 24 e anteriores ele continuará sendo oferecido como recurso experimental
Papel e limitações do Corepack
- O Corepack é uma ferramenta experimental introduzida no Node.js 16.9.0 que permite usar gerenciadores de pacotes como Yarn e pnpm sem instalação separada
- Ele ajuda a impor o uso de uma versão específica do gerenciador de pacotes em um projeto
- No entanto, não foi amplamente adotado devido à baixa familiaridade dos usuários e a mal-entendidos sobre seu propósito
- Também há ceticismo quanto a incluir no Node.js gerenciadores de pacotes que deveriam funcionar de forma independente do runtime
Como ocorreu o processo até a remoção do Corepack
- As discussões sobre o futuro do Corepack se estenderam por anos, e em novembro de 2023 uma proposta para ativá-lo por padrão gerou controvérsia
- Em fevereiro de 2024, surgiram preocupações de que o Corepack pudesse ser usado como meio de desfazer o acoplamento entre npm e Node.js
- Em março de 2024, embora tenha sido esclarecido que o npm continuaria incluído no Node.js, a possibilidade de remover o Corepack ganhou força
- O TSC delegou a decisão ao Package Maintenance Working Group (PMWG)
- O PMWG apresentou o seguinte roteiro de remoção:
- destacar ferramentas de gerenciamento de versão como nvm e fnm na página de downloads do Node.js
- separar a documentação do Corepack da documentação da API do Node.js e movê-la para um repositório próprio
- remover o Corepack da distribuição do Node.js a partir da próxima grande versão
- Esse roteiro recebeu forte apoio dentro do PMWG e levou à votação final
Motivos para a decisão de remover o Corepack
- Baixa adoção: muitos desenvolvedores preferem instalar e usar diretamente o gerenciador de pacotes de sua escolha em vez do Corepack
- Preocupações com distribuição: há quem considere desnecessário que o Corepack venha embutido no binário do Node.js
- Problemas de manutenção de longo prazo: se separado do Node.js, o Corepack poderá evoluir de forma mais independente
- Como resultado da votação, foi adotada a proposta de "remoção gradual no futuro"
- Outras propostas, como mantê-lo desativado por padrão, não receberam apoio suficiente
- Alguns desenvolvedores avaliaram a decisão como um retrocesso, pois usavam o Corepack para adotar o pnpm no lugar do npm
- O projeto Node.js enfatiza que o Corepack nunca foi pensado como um recurso permanente e que sua manutenção separada é mais desejável
O que muda daqui para frente
- No futuro, o Corepack não virá mais incluído por padrão no Node.js
- Quando necessário, ele deverá ser instalado manualmente com o seguinte comando:
- Projetos que usam Corepack precisarão atualizar sua documentação e seus fluxos de trabalho
- Ainda assim, a decisão não significa o fim do suporte ao Corepack, apenas sua remoção do Node.js
- A manutenção do Corepack continuará até que o Node.js 24.x atinja EOL
Contexto histórico do Node.js e dos gerenciadores de pacotes
- Já houve no passado debates sobre o que deveria ser incluído no Node.js, e a inclusão do npm era um deles
- Com o surgimento de gerenciadores de pacotes alternativos, como Yarn e pnpm, surgiram mais opções para os desenvolvedores
- A remoção do Corepack faz parte de um movimento para tornar a distribuição do Node.js mais enxuta
- Isso também acompanha a tendência de outros ecossistemas de linguagens de separar o runtime dos gerenciadores de pacotes
- Os desenvolvedores devem preparar seus ambientes levando em conta que o Corepack não virá mais incluído no Node.js no futuro
Ainda não há comentários.