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

Turborepo+Vue/Nuxt项目ESLint路径解析错误求助

解决Turborepo Vue项目中ESLint无法解析@别名路径的问题

问题原因

出现import/no-unresolved错误,是因为ESLint默认无法识别Vite配置中@对应的路径别名——Vite本身能正确解析该别名,但ESLint需要额外配置才能同步识别。而packages目录的导入正常,是因为Turborepo的默认配置已经让ESLint将packages下的包视为可解析模块。

解决步骤

1. 配置TypeScript路径映射(若未配置)

在apps/web目录下创建或修改tsconfig.json,添加路径映射规则,让TypeScript识别@指向src目录:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  },
  "include": ["src/**/*", "*.vue"]
}

2. 配置ESLint解析器以识别别名

推荐使用eslint-import-resolver-typescript让ESLint读取TypeScript的路径配置,步骤如下:

安装依赖

在apps/web目录下执行:

npm install eslint-import-resolver-typescript --save-dev

修改ESLint配置

编辑apps/web/.eslintrc.js,添加settings配置,指定TypeScript解析器及对应的tsconfig路径:

module.exports = {
  // 保留原有配置...
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    tsconfigRootDir: __dirname,
    project: ['./tsconfig.json']
  },
  settings: {
    'import/resolver': {
      typescript: {
        project: './tsconfig.json'
      }
    }
  }
};

备选方案:直接在ESLint中配置别名

如果不想依赖TypeScript配置,也可以用eslint-import-resolver-alias直接配置:

安装依赖

npm install eslint-import-resolver-alias --save-dev

修改ESLint配置

module.exports = {
  // 保留原有配置...
  settings: {
    'import/resolver': {
      alias: {
        map: [['@', './src']],
        extensions: ['.vue', '.ts', '.js', '.json']
      }
    }
  }
};

验证

配置完成后,重启ESLint服务或重新执行lint命令,@/components/test11.vue的导入错误应该会消失。

内容的提问来源于stack exchange,提问作者신재홍

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:55:01