我的文件 app.spec.ts 中有这个导入:
import app from './app';
导致此打字稿错误
2:17 error Unable to resolve path to module './app' import/no-unresolved
./app.ts 确实存在,但我没有将 .ts 文件编译成 .js 文件。一旦我将 .ts 文件编译为 .js,错误就会消失。
但是,由于 eslint 应该与 typescript 一起使用,它应该使用 .ts 而不是 .js 解析模块。
我还在我的eslint配置文件中添加了打字稿信息:
eslint
"parser": "@typescript-eslint/parser", "parserOptions": { "project": "./tsconfig.json" }
如何配置 eslint 以尝试使用 .ts 而不是 .js 解析模块?
干杯!
编辑#1
内容app.ts:
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;
您可以通过将此代码段添加到.eslintrc.json配置文件中来设置 ESLint 模块导入分辨率:
.eslintrc.json
{ "settings": { "import/resolver": { "node": { "extensions": [".js", ".jsx", ".ts", ".tsx"] } } }, ... }
有关解析器的更多信息:https ://github.com/benmosher/eslint-plugin-import#resolvers 。