[Dressca] admin / consumer でバージョンの同期を取るべきパッケージは、 ルートプロジェクトの package.json に記載したい #2859
KentaHizume
started this conversation in
03: アイディア
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
現状
現在 npm workspaces を使用した mono-repo 構成をとっているが、
パッケージの名称・バージョンの管理はルートプロジェクトではなく、個別の admin / consumer ワークスペースで管理している。
やりたいこと
admin / consumer でバージョンの同期を取るべきパッケージは、 ルートプロジェクトの package.json に記載し、記載量を削減したい。
モチベーション
各ワークスペースで共通して参照するパッケージは、 (プライベートな)npm パッケージとして切り出すという方針を原則取ることにしていると、モノレポのメリットがややわかりにくくなっていることに課題感を感じている。
経緯
もともと、AirBnB のスタイルガイドで import/no-extraneous-dependencies という、dependencies, devDependencies, peerDependencies, optionalDependencies に記載されていないパッケージのインポートを禁止するルールが有効化されていたので、
必ず各 package.json に書かなければならないと思っていた。
一方で、ESLint 9 への移行時に AirBnB のスタイルガイドをやめたので、このルールが適用されなくなった。
また、このルールでも packageDir オプションを適切に使用することで、 ルートプロジェクト側の package.json を参照させて monorepo 環境下でうまく動作するように設定できるらしいので、それも試したい。
Beta Was this translation helpful? Give feedback.
All reactions