4 ポイント 投稿者 GN⁺ 2025-03-26 | まだコメントはありません。 | WhatsAppで共有
  • Node.js技術運営委員会(TSC)が、Corepackを今後はNode.jsに同梱して配布しないことを正式投票で決定
  • Node.js 25から適用され、Node.js 24以下では引き続き実験的機能として提供される

Corepackの役割と限界

  • CorepackはNode.js 16.9.0で導入された実験的ツールで、Yarnやpnpmのようなパッケージマネージャーを別途インストールせずに利用できるようにする
  • プロジェクトで特定のパッケージマネージャーのバージョンを強制できるよう支援する役割を担う
  • しかし、ユーザーの認知不足や目的に対する誤解により、広く使われるには至らなかった
  • ランタイムとは独立して動作すべきパッケージマネージャーをNode.jsに含めることへの懐疑論も存在した

Corepack削除までの経緯

  • Corepackの今後をめぐる議論は数年にわたり続いており、2023年11月にはデフォルトで有効化する提案が論争を呼んだ
  • 2024年2月には、CorepackがnpmとNode.jsの結び付きを解消する手段として使われうるとの懸念が示された
  • 2024年3月には、npmは引き続きNode.jsに同梱されることを明確にしつつ、Corepackの削除可能性が浮上した
  • TSCはこの件に関する判断をパッケージ保守ワーキンググループ(PMWG)に委任
  • PMWGは次のような削除ロードマップを提示した:
    • Node.jsダウンロードページで、nvmやfnmのようなバージョン管理ツールを強調
    • CorepackのドキュメントをNode.js APIドキュメントから分離し、別リポジトリへ移動
    • 次のメジャーリリースからCorepackをNode.js配布物から削除
  • このロードマップはPMWG内で強い支持を得て、最終投票へと進んだ

Corepack削除決定の理由

  • 採用率の低さ: 多くの開発者はCorepackの代わりに、各自が好むパッケージマネージャーを直接インストールして利用している
  • 配布に関する懸念: CorepackがNode.jsバイナリに含まれていること自体が不要だという意見がある
  • 長期保守の問題: CorepackがNode.jsから分離されれば、パッケージマネージャーはより独立して発展できる
  • 投票の結果、「今後段階的に削除する」提案が採択された
  • 他の提案(例: デフォルトで無効のまま維持する)は十分な支持を得られなかった
  • 一部の開発者は、npmの代わりにCorepackを使ってpnpmを活用していたため、この決定を後退だと評価している
  • Node.js側は、Corepackはもともと恒久的な機能ではなく、分離して維持されることが望ましいと強調している

今後の変化

  • 今後のNode.jsではCorepackがデフォルトで同梱されない
  • 必要な場合は、次のコマンドで手動インストールする必要がある:
    • npm install -g corepack
  • Corepackを利用するプロジェクトは、ドキュメントやワークフローを更新する必要がある
  • ただし今回の決定はCorepackのサポート終了を意味するものではなく、あくまでNode.jsから削除されるという意味にとどまる
  • Node.js 24.xがEOLになるまでは、Corepackの保守は継続される

Node.jsとパッケージマネージャーの歴史的文脈

  • 過去にも、Node.jsに何を含めるべきかをめぐる論争があり、npmを同梱するかどうかもその一つだった
  • Yarnやpnpmなど代替パッケージマネージャーの登場により、選択肢は多様化した
  • Corepackの削除は、Node.js配布物をより簡潔にするための動きの一環である
  • これは、ランタイムとパッケージマネージャーを分離する他言語エコシステムの流れとも一致する
  • 開発者は今後、Node.jsにCorepackが含まれないことを前提に開発環境を整える必要がある

まだコメントはありません。

まだコメントはありません。