当前位置: 首页 > 知识库问答 >
问题:

将 eslint 与 typescript 结合使用 - 无法解析模块的路径

徐弘图
2023-03-14

我有这个导入在我的文件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,所以它应该使用。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;

共有3个答案

刘弘济
2023-03-14

对我来说是这样的:

.eslintrc.js

{
    ...
    settings: {
        ...
        'import/resolver': {
            node: {
                extensions: ['.js', '.jsx', '.ts', '.tsx'],
                moduleDirectory: ['node_modules', 'src/'],
            },
        },
    }
}
司徒兴思
2023-03-14

我也有同样的问题,我只能通过在< code >中添加typescript插件来解决这个问题。eslintrc,使用< code >中的< code >扩展选项。eslintrc

  extends: [
    "plugin:import/errors",
    "plugin:import/warnings",
    "plugin:import/typescript",
  ],
申屠瀚海
2023-03-14

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

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

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

 类似资料:
  • 本节将介绍怎样在一个 TypeScript 项目中使用 ESLint 规范,至于为什么不推荐使用 TSLint,可以看下这篇文章:TypeScript 官方已经决定全面采用 ESLint,ESLint 的 TypeScript 解析器也成为独立项目,专注解决双方兼容性问题。 所以,同开发前端项目一样,熟练掌握 ESLint 规则,也成了 TypeScript 项目开发的必要条件。 1. 慕课解释

  • 我正在用Expo构建react本机应用程序,所以我尝试使用bootstrap库中的组件。我创建了一个新项目: 然后我在项目文件夹中安装了库: 我得到了一些不相关的警告: 使用npm安装2个其他软件包。 npm警告可选跳过可选依赖项:fsevents@1.2.13(节点\u模块\fsevents):npm WARN notsup跳过可选依赖项:不支持的平台fsevents@1.2.13:通缉{“os

  • 问题内容: 我见过几篇与此类型的错误相关的文章。但是我无法解决。 我的package.json: 我在webpack上遇到以下错误: 但是在我做的cmd行中 我得到3.10.10。反应场在那里。但是我不知道为什么它仍然会给出这个错误。 当我通过npm安装“ npm install react-dom”并运行webpack时,出现以下错误: 请帮忙。 问题答案: 未安装Issue ,当您点击时,它会

  • 非常简单的用例,我使用的是EclipseOxygen4.7。3a,包括来自Java9的支持。我有两个项目是Java 9项目: 我想在中使用类,因此我尝试将第二个模块导入第一个项目。 模块信息。java项目1: 模块信息。java项目2: Eclipse给了我错误: 项目二不能解析为模块 我是否必须将所有Java项目集中在一个“主项目”下,以便让Eclipse知道所有这些模块在其中都是可用的?还是我

  • 我有以下项目结构: 以及以下 假设我在中安装了(甚至安装了)。当我尝试导入时,例如或,这两个导入都是错误的,并显示消息“Cannot find module…”等。 在编写导入字符串时,VSCode建议我使用中的模块,但不建议使用的文件夹。 相对导入仍然有效,但这是地狱,你知道。 我绝对是TypeScript的新手,但我正在根据“模块解析”TypeScript文档做事,它不起作用。 非常感谢这里的

  • 问题内容: 我正在尝试抓取必须先登录才能访问的网页。但是在身份验证之后,我需要的网页需要运行一些Javascript才能查看内容。我已经按照此处的说明安装了启动程序,以尝试呈现Javascript。然而… 在我切换启动之前,使用Scrapy进行身份验证是可以的。我正在浏览登录页面,然后抓取目标页面正常(显然,除非Javascript无法正常工作)。但是,一旦添加代码以通过启动请求传递请求,就好像我