ファイルapp.spec.tsに次のインポートがあります:
import app from './app';
このTypescriptエラーの原因
2:17 error Unable to resolve path to module './app' import/no-unresolved
./app.tsは存在しますが、.ts ファイルを .js ファイルにコンパイルしていません。.ts ファイルを .js にコンパイルすると、エラーは解消されます。
ただし、eslint は typescript で動作することを想定しているため、.js ではなく .ts でモジュールを解決する必要があります。
設定ファイルに TypeScript 情報も追加しましたeslint
:
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json"
}
.js ではなく .ts でモジュールを解決しようとするように eslint を設定するにはどうすればよいでしょうか?
編集#1
の内容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;
ベストアンサー1
次のスニペットを設定ファイルに追加することで、ESLint モジュールのインポート解決を設定できます.eslintrc.json
。
{
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
},
...
}
リゾルバに関する詳細情報:https://github.com/benmosher/eslint-plugin-import#resolvers。