197 votes

Typescript eslint - Extension de fichier "ts" manquante import/extensions

J'ai une simple application Node/Express faite avec Typescript. Et eslint me donne l'erreur

Missing file extension "ts" for "./lib/env" import/extensions

Voici mon fichier .eslintrc

    {
  "extends": [
    "airbnb",
    "plugin:@typescript-eslint/recommended",
    "prettier",
    "prettier/react",
    "plugin:import/errors",
    "plugin:import/warnings",
    "plugin:import/typescript"
  ],
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint", "prettier", "import"],
  "settings": {
    "import/extensions": [".js", ".jsx", ".ts", ".tsx"],
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx"]
    },
    "import/resolver": {
      "typescript": {
        "directory": "./tsconfig.json"
      },
      "node": {
        "extensions": [".js", ".jsx", ".ts", ".tsx"]
      }
    }
  },
  "rules": {
    "@typescript-eslint/indent": [2, 2],
    "no-console": "off",
    "import/no-unresolved": [2, { "commonjs": true, "amd": true }],
    "import/named": 2,
    "import/namespace": 2,
    "import/default": 2,
    "import/export": 2
  }
}

J'ai installé eslint-plugin-import et eslint-import-resolver-typescript. Et je n'arrive pas à comprendre pourquoi, j'ai eu cette erreur.

3 votes

3voto

jfunk Points 1053

Si vous êtes comme moi en train d'essayer de configurer babel, l'ancien Javascript et les nouveaux fichiers typescript et d'essayer d'activer les importations sans extension sur *.ts puis je suis tombé sur ce problème d'ESLint (où j'ai également trouvé la solution ci-dessous) :

En plus de la rules config :

"rules": {
   "import/extensions": [
      "error",
      "ignorePackages",
      {
        "js": "never",
        "mjs": "never",
        "jsx": "never",
        "ts": "never",
        "tsx": "never"
      }
   ]
}

Vous avez également besoin d'une entrée de paramètres supplémentaire dans votre .eslintrc.js :

  "settings": {
    "import/extensions": [".js", ".mjs", ".jsx", ".ts", ".tsx"]
  },

Bonne chance !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X