- El Comité Directivo Técnico (TSC) de Node.js decidió mediante una votación oficial que Corepack dejará de incluirse en la distribución de Node.js
- Se aplicará a partir de Node.js 25, mientras que en Node.js 24 e inferiores seguirá ofreciéndose como una función experimental
Función y límites de Corepack
- Corepack es una herramienta experimental introducida en Node.js 16.9.0 que permite usar gestores de paquetes como Yarn y pnpm sin instalarlos por separado
- Cumple la función de ayudar a forzar una versión específica del gestor de paquetes en un proyecto
- Sin embargo, no se ha usado ampliamente debido al bajo conocimiento de los usuarios y a malentendidos sobre su propósito
- También existe escepticismo sobre incluir en Node.js gestores de paquetes que deberían funcionar de manera independiente del runtime
El proceso hasta la eliminación de Corepack
- El debate sobre el futuro de Corepack ha continuado durante años, y en noviembre de 2023 una propuesta para activarlo por defecto generó polémica
- En febrero de 2024 surgieron preocupaciones de que Corepack pudiera usarse como una forma de deshacer el acoplamiento entre npm y Node.js
- En marzo de 2024, aunque se dejó claro que npm seguiría incluido en Node.js, empezó a tomar fuerza la posibilidad de eliminar Corepack
- El TSC delegó la decisión relacionada al Package Maintenance Working Group (PMWG)
- El PMWG presentó la siguiente hoja de ruta para la eliminación:
- Destacar herramientas de gestión de versiones como nvm y fnm en la página de descargas de Node.js
- Separar la documentación de Corepack de la documentación de la API de Node.js y moverla a un repositorio independiente
- Eliminar Corepack de la distribución de Node.js a partir de la siguiente versión mayor
- Esta hoja de ruta recibió un fuerte respaldo dentro del PMWG y llevó a la votación final
Motivos detrás de la decisión de eliminar Corepack
- Baja adopción: muchos desarrolladores instalan y usan directamente el gestor de paquetes que prefieren en lugar de Corepack
- Preocupaciones sobre la distribución: existe la opinión de que incluir Corepack dentro del binario de Node.js es innecesario
- Problemas de mantenimiento a largo plazo: si Corepack se separa de Node.js, los gestores de paquetes podrán evolucionar con mayor independencia
- El resultado de la votación fue la adopción de la propuesta de una “eliminación gradual en el futuro”
- Otras propuestas (por ejemplo, mantenerlo desactivado por defecto) no obtuvieron suficiente apoyo
- Algunos desarrolladores evaluaron esta decisión como un retroceso, ya que usaban Corepack en lugar de npm para aprovechar pnpm
- Desde Node.js se enfatiza que Corepack nunca estuvo pensado como una función permanente y que es preferible mantenerlo por separado
Cambios a futuro
- En adelante, Corepack ya no vendrá incluido por defecto en Node.js
- Si se necesita, deberá instalarse manualmente con el siguiente comando:
- Los proyectos que usan Corepack necesitarán actualizar su documentación y sus flujos de trabajo
- Aun así, esta decisión no significa el fin del soporte para Corepack, sino únicamente su eliminación de Node.js
- El mantenimiento de Corepack continuará hasta que Node.js 24.x llegue a EOL
Contexto histórico de Node.js y los gestores de paquetes
- En el pasado ya hubo debates sobre qué elementos debían incluirse en Node.js, y uno de ellos fue si npm debía formar parte del proyecto
- Con la aparición de gestores de paquetes alternativos como Yarn y pnpm, surgieron más opciones de elección
- La eliminación de Corepack forma parte de un movimiento para hacer más simple la distribución de Node.js
- Esto también está en línea con la tendencia de otros ecosistemas de lenguajes de separar el runtime y el gestor de paquetes
- Los desarrolladores deberán preparar su entorno de desarrollo teniendo en cuenta que Corepack ya no vendrá incluido en Node.js
Aún no hay comentarios.