- Komite Pengarah Teknis (TSC) Node.js secara resmi memutuskan melalui pemungutan suara untuk tidak lagi menyertakan dan mendistribusikan Corepack bersama Node.js
- Perubahan ini akan berlaku mulai Node.js versi 25, sementara pada Node.js 24 dan sebelumnya Corepack akan tetap disediakan sebagai fitur eksperimental
Peran dan keterbatasan Corepack
- Corepack adalah alat eksperimental yang diperkenalkan di Node.js 16.9.0, yang memungkinkan penggunaan package manager seperti Yarn dan pnpm tanpa instalasi terpisah
- Alat ini membantu proyek memaksakan penggunaan versi package manager tertentu
- Namun, alat ini tidak digunakan secara luas karena kurangnya pemahaman pengguna dan kesalahpahaman mengenai tujuannya
- Ada skeptisisme terhadap penyertaan package manager yang seharusnya berjalan secara independen dari runtime ke dalam Node.js
Proses menuju penghapusan Corepack
- Diskusi mengenai masa depan Corepack telah berlangsung selama beberapa tahun, dan pada November 2023 usulan untuk mengaktifkannya secara default memicu kontroversi
- Pada Februari 2024, muncul kekhawatiran bahwa Corepack dapat digunakan sebagai sarana untuk memisahkan keterikatan antara npm dan Node.js
- Pada Maret 2024, sambil menegaskan bahwa npm akan tetap disertakan dalam Node.js, kemungkinan penghapusan Corepack mulai mengemuka
- TSC mendelegasikan keputusan terkait kepada Package Maintenance Working Group (PMWG)
- PMWG mengajukan roadmap penghapusan sebagai berikut:
- Menonjolkan alat manajemen versi seperti nvm dan fnm di halaman unduhan Node.js
- Memisahkan dokumentasi Corepack dari dokumentasi API Node.js dan memindahkannya ke repositori terpisah
- Menghapus Corepack dari distribusi Node.js mulai rilis mayor berikutnya
- Roadmap ini mendapat dukungan kuat di dalam PMWG dan berlanjut ke pemungutan suara final
Alasan keputusan menghapus Corepack
- Tingkat adopsi rendah: banyak pengembang memilih memasang dan menggunakan package manager favorit mereka secara langsung alih-alih memakai Corepack
- Kekhawatiran terkait distribusi: ada pandangan bahwa memasukkan Corepack ke dalam biner Node.js itu sendiri tidak diperlukan
- Masalah pemeliharaan jangka panjang: jika Corepack dipisahkan dari Node.js, package manager dapat berkembang dengan lebih mandiri
- Hasil pemungutan suara menetapkan usulan untuk 'penghapusan bertahap ke depan'
- Usulan lain (misalnya tetap membiarkannya nonaktif secara default) tidak memperoleh dukungan yang cukup
- Sebagian pengembang menilai keputusan ini sebagai kemunduran karena mereka menggunakan Corepack alih-alih npm untuk memanfaatkan pnpm
- Pihak Node.js menekankan bahwa Corepack sejak awal bukanlah fitur permanen, dan lebih baik dipelihara secara terpisah
Perubahan ke depan
- Ke depannya, Corepack tidak akan lagi disertakan secara default dalam Node.js
- Jika diperlukan, instalasi harus dilakukan secara manual dengan perintah berikut:
- Proyek yang menggunakan Corepack perlu memperbarui dokumentasi dan workflow mereka
- Namun, keputusan ini tidak berarti penghentian dukungan untuk Corepack, melainkan hanya penghapusannya dari Node.js
- Pemeliharaan Corepack akan terus berlanjut sampai Node.js 24.x mencapai EOL
Konteks historis Node.js dan package manager
- Di masa lalu juga pernah ada perdebatan tentang komponen apa saja yang seharusnya disertakan dalam Node.js, termasuk soal apakah npm perlu dibundel
- Munculnya package manager alternatif seperti Yarn dan pnpm telah menghadirkan lebih banyak pilihan
- Penghapusan Corepack adalah bagian dari upaya membuat distribusi Node.js lebih ringkas
- Ini juga sejalan dengan tren di ekosistem bahasa lain yang memisahkan runtime dan package manager
- Pengembang perlu menyiapkan lingkungan pengembangan mereka dengan mempertimbangkan bahwa Corepack tidak akan lagi disertakan dalam Node.js di masa mendatang
Belum ada komentar.