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

Create React App+Lerna monorepo中ESLint报import/no-unresolved错误

解决Lerna Monorepo中JS导入TS时ESLint的import/no-unresolved错误

1. 安装必要的ESLint解析器依赖

你当前配置用到了eslint-import-resolver-typescript但可能未安装,执行以下命令补装:

npm install eslint-import-resolver-typescript --save-dev
# 或使用yarn
yarn add eslint-import-resolver-typescript -D

2. 修正ESLint路径解析配置

当前settings里的import/resolver.typescript仅设为true,无法适配Lerna多包结构。需指定TS配置文件路径,让ESLint正确识别各包的类型定义:
修改.eslintrc.json的settings部分:

"settings": {
  "import/resolver": {
    "typescript": {
      "project": ["packages/*/tsconfig.json", "./tsconfig.json"]
    },
    "node": {
      "extensions": [".js", ".jsx", ".ts", ".tsx"]
    }
  },
  "import/parsers": {
    "@typescript-eslint/parser": [".ts", ".tsx", ".js", ".jsx"]
  }
}
  • project指定所有包的TS配置文件路径,确保ESLint读取完整类型配置
  • node.extensions添加TS相关扩展名,避免因扩展名缺失导致解析失败
  • import/parsers将JS/JSX纳入TS解析器处理范围,让ESLint识别JS文件对TS模块的导入

3. 确保tsconfig.json配置正确

检查根目录或各包的tsconfig.json,确认以下关键配置:

{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true, // 可选,开启后对JS文件做类型检查
    "baseUrl": "./src" // 若用路径别名,需同步到ESLint配置
  },
  "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.jsx"]
}
  • allowJs必须设为true,允许TS编译器处理JS文件
  • include需覆盖所有JS/JSX文件,确保类型定义被正确识别

4. 清除ESLint缓存

ESLint缓存可能残留旧配置,执行命令清除:

npx eslint --cache --clear
# 或直接删除项目根目录的.eslintcache文件

5. 验证Lerna包配置

检查lerna.json的packages字段是否正确包含所有子包路径:

{
  "packages": ["packages/*"],
  "version": "independent"
}

完成以上步骤后,重启ESLint服务或重新运行lint命令,import/no-unresolved错误即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:05:23