Drizzle ORMが1ヶ月間NPMに新バージョンを公開できなかった理由
Drizzle ORMは、そのパッケージメタデータ(packument)がNPMのサイズ制限に達したため、約1ヶ月間新しいバージョンを公開できませんでした。この問題は、データベーススキーマの型情報をすべてパッケージに含めた結果、packumentが約30MBにまで膨れ上がったことに起因します。解決策として、NPMパッケージのメタデータサイズ制限を回避するための手法が採用されました。
背景メモ
- Drizzle ORMはTypeScript向けの軽量ORM(オブジェクト関係マッピング)ライブラリ。人気が高く、Next.jsなどモダンなJSフレームワークと組み合わせて使われることが多い。
- npmはNode.js/JavaScriptの標準パッケージレジストリ。パッケージの公開・管理はほぼ全開発者が依存している基盤インフラだが、内部の仕様はあまり知られていない。
- 「packument」とはnpm内部で使われる用語で、パッケージの全メタデータ(全バージョンの情報、依存関係、READMEなど)をひとまとめにしたJSONドキュメントのこと。パッケージが大きくなるとこのファイルも肥大化する。
- 2025年4月、Drizzle ORMのpackumentがnpmの内部サイズ制限(約4MB)に達し、新バージョンの公開が1ヶ月近くできなくなった。原因は、Drizzleが多くのデータベース方言(PostgreSQL、MySQL、SQLiteなど)を1パッケージでサポートしていたことによるメタデータの膨張。
- この問題は「モノレポ構成+変更の多いパッケージ」に共通する落とし穴で、npmの設計上の限界と、スケールするパッケージ管理の難しさを示す事例として注目された。