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;
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"]
}
}
}
}
Dans le cas, si quelqu'un doit également prendre en charge le répertoire enfant. Par exemple, il prend en charge
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.