小编典典

使用带有打字稿的 eslint - 无法解析模块的路径

all

我的文件 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配置文件中添加了打字稿信息:

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

如何配置 eslint 以尝试使用 .ts 而不是 .js 解析模块?

干杯!

编辑#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;

阅读 72

收藏
2022-05-12

共1个答案

小编典典

您可以通过将此代码段添加到.eslintrc.json配置文件中来设置 ESLint 模块导入分辨率:

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

有关解析器的更多信息:https ://github.com/benmosher/eslint-plugin-import#resolvers 。

2022-05-12