Come fare in modo che eslint risolva i percorsi mappati in jsconfig


9

Nel mio progetto nextjs ho mappato il percorso jsconfig.jsonper facilitare le importazioni assolute

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

I miei percorsi di importazione sembrano così import { VIEW } from '@/src/shared/constants';

Mio eslintrc.jsha le impostazioni specificate come

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

Ricevo ancora l'errore che dice che non è possibile risolvere "@ / what / ever / my / path / is"

Come faccio a far capire a eslint il percorso jsconfig

Risposte:


6

Stavo usando babel-eslint come mio parser in eslintrc. Durante la ricerca, mi sono reso conto che devo aggiungerebabel-plugin-module-resolver babelrc per risolvere i moduli. In questo file possiamo definire i nostri percorsi mappati che sono presenti nel nostro jsconfig.

Quindi l'aggiunta del seguente plugin nel file babelrc ha compilato correttamente il mio codice.

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

0

Secondo i documenti per eslint-import-resolver-alias , la mapproprietà dovrebbe essere una matrice di array, quindi prova questo:

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

Inoltre, ricontrolla che hai effettivamente eslint-import-resolver-aliasinstallato - è facile da dimenticare!


Il plug-in è installato, ho provato a farlo anche con l'array. Sempre lo stesso problema, non è possibile risolvere il percorso.
mdanishs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.