You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置eslint-plugin-module-resolver时import/no-unresolved规则报错求助

解决ESLint中import/no-unresolved规则配置无效问题

问题背景

已完成ESLint、Prettier、Babel的无冲突配置,尝试通过eslint-plugin-module-resolver在TypeScript项目中配置绝对路径。项目编译、转译及服务启动均正常,但执行npm run lint时触发ESLint报错,提示import/no-unresolved规则配置存在额外属性。

错误信息

npm run lint

> setup@1.0.0 lint
> eslint . --ext .ts .tsx


Oops! Something went wrong! :(

ESLint: 8.25.0

Error: .eslintrc.json:
        Configuration for rule "import/no-unresolved" is invalid:
        Value {"plugins":["module-resolver/use-alias",{"alias":{"@config":"./src/config","@controllers":"./src/controllers","@services":"./src/services","@models":"./src/models","@routes":"./src/routes","@pages":"./src/pages","@utils":"./src/utils","@middlewares":"./src/middlewares"}}],"caseSensitive":true,"caseSensitiveStrict":false} should NOT have additional properties.

问题原因

错误在于将eslint-plugin-module-resolver的别名配置放在了import/no-unresolved规则的参数中,不符合该规则的配置规范。正确的做法是将模块解析器的配置放在ESLint的settings字段下,而非规则内部。

解决方案

1. 修改.eslintrc.json配置

将别名配置移至settings字段,并调整import/no-unresolved规则的配置:

{
  "env": {
    "es2021": true,
    "node": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:prettier/recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier"
  ],
  "overrides": [],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": "latest",
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "plugins": ["@typescript-eslint", "module-resolver", "prettier", "import"],
  "settings": {
    "import/resolver": {
      "module-resolver": {
        "alias": {
          "@config": "./src/config",
          "@controllers": "./src/controllers",
          "@services": "./src/services",
          "@models": "./src/models",
          "@routes": "./src/routes",
          "@pages": "./src/pages",
          "@utils": "./src/utils",
          "@middlewares": "./src/middlewares"
        },
        "extensions": [".ts", ".tsx"]
      }
    }
  },
  "rules": {
    "indent": ["error", 2],
    "tabwidth": ["error", 2],
    "linebreak-style": ["error", "unix"],
    "quotes": ["error", "double"],
    "semi": ["error", "always"],
    "trailingComma": ["warn", "none"],
    "prettier/prettier": "error",
    "import/no-unresolved": "error"
  }
}

2. 确保tsconfig.json配置对应路径

TypeScript本身需要识别绝对路径,需在tsconfig.json的compilerOptions中添加paths配置:

{
  "compilerOptions": {
    // 其他原有配置...
    "baseUrl": ".",
    "paths": {
      "@config/*": ["src/config/*"],
      "@controllers/*": ["src/controllers/*"],
      "@services/*": ["src/services/*"],
      "@models/*": ["src/models/*"],
      "@routes/*": ["src/routes/*"],
      "@pages/*": ["src/pages/*"],
      "@utils/*": ["src/utils/*"],
      "@middlewares/*": ["src/middlewares/*"]
    }
  }
}

3. 验证修复

执行npm run lint,确认报错消失,ESLint可正常识别绝对路径导入。

内容的提问来源于stack exchange,提问作者Gonzalo Cugiani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:45:43