概要
相対パスインポート (../ や ../../ など) を禁止し、@/ エイリアスによるインポートを ESLint ルールで強制する。
背景・モチベーション
相対パスインポートはディレクトリ構造の変更に脆弱で、深いネスト (../../../) になると可読性が著しく低下する。@/ エイリアス(プロジェクトルートへのマッピング)を統一的に使うことで以下のメリットが得られる:
提案するルール構成
// eslint.config.js (Flat Config)
import { createImportPlugin } from 'eslint-plugin-import-x' // or eslint-plugin-import
{
rules: {
// ../ や ../../ などの相対パスを禁止
'no-restricted-imports': [
'error',
{
patterns: [
{
group: ['..*'],
message: '相対パスインポート (../) は禁止です。@/ エイリアスを使用してください。',
},
],
},
],
// import/no-relative-parent-imports でも同様の制約が可能
// 'import-x/no-relative-parent-imports': 'error',
},
}
受け入れ条件 (Acceptance Criteria)
参考リンク
概要
相対パスインポート (
../や../../など) を禁止し、@/エイリアスによるインポートを ESLint ルールで強制する。背景・モチベーション
相対パスインポートはディレクトリ構造の変更に脆弱で、深いネスト (
../../../) になると可読性が著しく低下する。@/エイリアス(プロジェクトルートへのマッピング)を統一的に使うことで以下のメリットが得られる:提案するルール構成
受け入れ条件 (Acceptance Criteria)
../から始まる相対親ディレクトリインポートをerrorレベルで報告する ESLint ルールが追加されている@/エイリアスインポートはルールに違反しない./インポートはオプションで許可できる(デフォルトは禁止 or 許可を議論)参考リンク
no-restricted-imports(ESLint built-in)import-x/no-relative-parent-importseslint-plugin-import/no-relative-parent-imports