Lexicalコアパッケージを明示的な依存関係として追加
Lexxyのpackage.jsonに、lexicalと@lexical/extensionが明示的な依存関係として追加されました。これにより、これまで推移的依存関係に頼っていたコアパッケージへの依存が、より安定した形で管理されるようになります。
背景
Lexxyは複数の@lexical/*パッケージを依存関係として持っていますが、これらのパッケージの多くは内部的にlexicalコアパッケージと@lexical/extensionに依存しています。変更前のpackage.jsonでは、これら2つのパッケージを直接依存関係として宣言しておらず、他のLexicalパッケージ経由での推移的依存関係に頼っていました。
推移的依存関係に頼る構成では、将来的に他のLexicalパッケージの依存関係が変更された場合に、意図しないバージョンのlexicalや@lexical/extensionがインストールされるリスクがあります。
技術的な変更
package.jsonのdependenciesセクションに、lexicalと@lexical/extensionの2つのパッケージが追加されました。
変更後:
"dependencies": {
"@lexical/extension": "^0.38.2",
"@lexical/clipboard": "^0.38.2",
"@lexical/code": "^0.38.2",
...
"lexical": "^0.38.2",
"dompurify": "^3.3.0",
...
}
yarn.lockでは、既存のバージョン0.38.2のエントリに、キャレット付きのバージョン指定子^0.38.2が追加されました。
変更後:
-"@lexical/extension@0.38.2":
+"@lexical/extension@0.38.2", "@lexical/extension@^0.38.2":
version "0.38.2"
resolved "https://registry.yarnpkg.com/@lexical/extension/-/extension-0.38.2.tgz#1df5bf49f7a178b6e28708d91539c65273ffef8c"
integrity sha512-qbUNxEVjAC0kxp7hEMTzktj0/51SyJoIJWK6Gm790b4yNBq82fEPkksfuLkRg9VQUteD0RT1Nkjy8pho8nNamw==
-lexical@0.38.2:
+lexical@0.38.2, lexical@^0.38.2:
version "0.38.2"
resolved "https://registry.yarnpkg.com/lexical/-/lexical-0.38.2.tgz#1cf0c4a3d14803bdd7727229d6c50cf2732567a7"
integrity sha512-JJmfsG3c4gwBHzUGffbV7ifMNkKAWMCnYE3xJl87gty7hjyV5f3xq7eqTjP5HFYvO4XpjJvvWO2/djHp5S10tw==
インストールされるパッケージのバージョンは変わらず、既存の0.38.2が維持されています。lockファイルの変更は、新しい依存関係解決パスの追加のみです。
設計判断
明示的な依存関係の宣言という方針が採用されました。
Lexxyのコードベースがlexicalと@lexical/extensionのAPIを直接使用している場合、それらを推移的依存関係ではなく直接的な依存関係として宣言するのは、依存関係管理のベストプラクティスです。この変更により、バージョン管理の意図がpackage.jsonに明確に記録され、依存関係の解決がより予測可能になります。
バージョン指定に^0.38.2が使用されていることから、マイナーバージョンアップデートまでは許容する方針であることが読み取れます。
まとめ
本PRは、Lexxyが使用するLexicalコアパッケージの依存関係を明示化した変更です。推移的依存関係への依存から脱却することで、将来的なバージョン競合のリスクを軽減し、より安定した依存関係管理を実現しています。インストールされるパッケージのバージョンには影響を与えず、依存関係の宣言方法のみを改善した保守的な変更といえます。