Cara membuat eslint menyelesaikan jalur yang dipetakan dalam jsconfig

9

Dalam proyek nextjs saya, saya telah memetakan jalan jsconfig.jsonuntuk membuat impor mutlak mudah

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["./*"]
    },
    "target": "es6",
    "module": "commonjs",
    "experimentalDecorators": true
  }
}

Jalur impor saya terlihat seperti ini import { VIEW } from '@/src/shared/constants';

eslintrc.jsPengaturan saya telah ditentukan sebagai

module.exports = {
    ... ,
    settings: {
        "import/resolver": {
          alias: {
            extensions: [".js"],
            map: ["@", "."]
          }
        }
      }
}

Saya masih mendapatkan pesan kesalahan yang mengatakan tidak dapat menyelesaikan "@ / apa / pernah / my / path /"

Bagaimana cara membuat eslint mewujudkan jalur jsconfig

mdanishs
sumber

Jawaban:

6

Saya menggunakan babel-eslint sebagai parser saya di eslintrc. Saat mencari, saya menyadari saya perlu menambahkan babel-plugin-module-resolverbabelrc untuk menyelesaikan modul. Dalam file ini kita dapat mendefinisikan jalur yang dipetakan yang ada di jsconfig kita.

Karenanya menambahkan plugin berikut dalam file babelrc berhasil mengkompilasi kode saya.

[
    "module-resolver",
    {
        "alias": {
          "@": "./"
        }
    }
]
mdanishs
sumber
0

Menurut dokumen untuk eslint-import-resolver-alias , mapproperti harus berupa array array, jadi coba ini:

module.exports = {
    ... ,
    settings: {
        "import/resolver": {
          alias: {
            extensions: [".js"],
            map: [ ["@", "."] ]
          }
        }
      }
}

Juga, periksa kembali apakah Anda benar-benar telah eslint-import-resolver-aliasmenginstal - mudah untuk dilupakan!

Duncan Thacker
sumber
Plugin terinstal, saya mencoba melakukannya dengan array juga. Masih masalah yang sama, tidak bisa menyelesaikan jalan.
mdanishs