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

NX Vue Monorepo构建失败:ESLint加载node_modules内插件配置出错

Vue项目迁移Monorepo后Build阶段ESLint误解析node_modules内包配置的问题解决

问题场景

本地开发服务器可正常启动:

> nx run texasholdem:dev
> vite --mode localdev

VITE v5.0.12  ready in 1267 ms

但执行build:local命令时,ESLint尝试加载node_modules内包的自定义配置文件,报错:

> nx run texasholdem:build-local
> vue-tsc --build --force
> vite build --mode localdev

[vite-plugin-pwa:build] Failed to load config "@ljharb" to extend from.
Referenced from: C:\Users\lukXmelo\Documents\GitHub\texasholdem\node_modules\qs\.eslintrc
file: C:/Users/lukXmelo/Documents/GitHub/texasholdem/node_modules/qs/lib/index.js

移除vite-plugin-pwa插件后,仍出现同类错误:

[commonjs--resolver] Failed to load config "@ljharb" to extend from.
Referenced from: C:\Users\lukXmelo\Documents\GitHub\texasholdem\node_modules\qs\.eslintrc
file: C:/Users/lukXmelo/Documents/GitHub/texasholdem/node_modules/qs/lib/index.js

已将node_modules添加至eslintrc.js的ignoredPatterns及.eslintignore中,但问题仍未解决,涉及的包包括qs、chroma.js和eslint-config-airbnb。

解决方案

1. 强化ESLint根配置,阻断子目录配置读取

在项目根目录的.eslintrc.js中,开启root: true(ESLint会停止向上查找配置,也不会读取node_modules内的子配置),同时明确忽略规则:

module.exports = {
  root: true,
  // 明确忽略node_modules下所有文件
  ignoredPatterns: ['node_modules/**', 'dist/**', '*.config.js'],
  parserOptions: {
    project: ['./tsconfig.json'],
    tsconfigRootDir: __dirname,
    // 限定只解析项目源码相关文件
    extraFileExtensions: ['.vue']
  },
  // 其他ESLint规则配置...
}

2. 配置NX Build任务的ESLint忽略规则

在项目的project.json中,针对build-local任务添加ESLint忽略配置,避免NX扫描node_modules:

{
  "targets": {
    "build-local": {
      "executor": "@nx/vite:build",
      "options": {
        "mode": "localdev",
        "eslint": {
          "ignorePatterns": ["node_modules/**"]
        }
      },
      "dependsOn": ["^build"]
    }
  }
}

3. 禁用Vite插件的额外ESLint扫描

部分Vite插件(如vite-plugin-pwa、commonjs解析插件)会触发独立的ESLint检查,需在插件配置中明确关闭对node_modules的扫描:
以vite-plugin-pwa为例,修改vite.config.js:

import { VitePWA } from 'vite-plugin-pwa'

export default defineConfig({
  plugins: [
    VitePWA({
      build: {
        // 禁用插件对node_modules的ESLint检查
        eslint: false
      }
    })
  ]
})

4. 清理缓存并重装依赖

缓存可能导致配置不生效,执行以下命令重置环境:

# 重置NX缓存
nx reset
# 删除依赖及锁文件
rm -rf node_modules package-lock.json
# 重装依赖
npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:30:27