web-dev-qa-db-fra.com

Utilisation d'eslint avec TypeScript - Impossible de résoudre le chemin d'accès au module

J'ai cette importation dans mon fichier app.spec.ts:

import app from './app';

À l'origine de cette erreur TypeScript

2:17  error  Unable to resolve path to module './app'  import/no-unresolved

./ app.ts existe, mais je n'ai pas compilé le fichier .ts dans un fichier .js. Dès que je compile le fichier .ts en un .js, l'erreur disparaît.

Cependant, comme eslint est censé fonctionner avec TypeScript, il devrait résoudre les modules avec le .ts et non avec le .js.

J'ai également ajouté les informations TypeScript dans mon fichier de configuration eslint:

"parser": "@TypeScript-eslint/parser",
"parserOptions": {
    "project": "./tsconfig.json"
}

Comment puis-je configurer eslint de telle manière qu'il essaie de résoudre les modules avec le .ts et non le .js?

À votre santé!

MODIFIER # 1

Contenu de app.ts:

import bodyParser from 'body-parser';
import express from 'express';
import graphqlHTTP from 'express-graphql';
import { buildSchema } from 'graphql';

const app = express();

const schema = buildSchema(`
    type Query {
        hello: String
    }
`);
const root = { hello: () => 'Hello world!' };

app.use(bodyParser());
app.use('/graphql', graphqlHTTP({
    schema,
    rootValue: root,
    graphiql: true,
}));

export default app;
59
maximedupre

ts et eslint m'aboyaient, j'ai donc dû ajouter ce qui suit à mon fichier . Eslintrc:

{ 
    ...
    "rules": {
        ....
        "import/extensions": "off"
    },
    "settings": {
        ....
        "import/resolver": {
            "node": {
                "extensions": [".js", ".jsx", ".ts", ".tsx"]
            }
        }
    }
}
0
John Galt

Dans le cas, si quelqu'un doit également prendre en charge le répertoire enfant. Par exemple, il prend en charge

  1. src/components/input => composants/entrée
  2. src/api/external/request => externe/demande

    "settings": {
      "import/resolver": {
        "node": {
          "paths": ["src", "src/api"],
          "extensions": [".js", ".jsx", ".ts", ".tsx"]
        }
      }
    }
    

C'est un exemple de travail pour eslint ^ 6.1.

0
YÒGÎ