最近インターンシップをしながら、プロダクトの巨大なコードベースを初めて経験しました。変更の影響範囲を見極めるのが難しく、「このコードはどこから参照すべきか」を繰り返し悩みました。静的解析(ESLint)でimportの境界を強制すれば、アーキテクチャの品質をより安定して維持できると考えました。
eslint-plugin-boundariesでも似たルールを作れることは知っていました。ただ、フロントエンドで適用しようとすると設定が複雑になり、許可されたtargetであってもimport pathの形式まで強制するのは難しかったです。
そこで、シンプルな設定でJS(TS)プロジェクトのフォルダ構造そのものをルールにするeslint-plugin-import-boundaryを作りました。
- 基本的に親は直属の子ディレクトリのpublic entryだけをimport可能
- public entryファイル形式を指定可能(デフォルト: index)
- 共用ファイル(フォルダ)を指定することで、その範囲内でのみ共有モジュールを自分自身と下位ディレクトリ領域からimportできます。
まだ初期段階なので、フィードバックや反応を歓迎します。ありがとうございます!
- ドキュメント: https://nayounsang.github.io/eslint-plugin-import-boundary/
- インストール:
pnpm add -D eslint-plugin-import-boundary eslint
まだコメントはありません。