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

Node 18.7.0编译Nuxt报错:Rule仅能有一个资源源,求排查原因

问题排查:Webpack RuleSet 资源源冲突错误

环境信息

  • Node版本:18.7.0
  • npm版本:8.13.2

项目package.json配置

{
  "version": "1.0.0",
  "scripts": {
    "dev": "node ./pm2.js",
  },
  "dependencies": {
    "@nuxtjs/axios": "5.10.2",
    "@nuxtjs/style-resources": "1.0.0",
    "@sendgrid/mail": "6.3.1",
    "axios": "0.19.2",
    "cheerio": "1.0.0-rc.2",
    "compression": "1.7.4",
    "cookie-parser": "1.4.6",
    "express": "4.17.1",
    "geoip2ws": "1.8.10",
    "gsap": "2.1.3",
    "lodash": "4.17.21",
    "moment": "2.29.4",
    "mongoose": "5.9.10",
    "morgan": "1.10.0",
    "nuxt": "2.15.8",
    "pm2": "4.4.0",
    "request": "2.88.0",
    "sitemap": "2.2.0",
    "vcards-js": "2.10.0",
    "vuex-router-sync": "5.0.0"
  },
  "devDependencies": {
    "@babel/core": "7.18.10",
    "@babel/eslint-parser": "7.18.9",
    "chokidar": "3.4.0",
    "eslint": "8.21.0",
    "eslint-config-standard": "17.0.0",
    "eslint-plugin-vue": "9.3.0",
    "eslint-webpack-plugin": "2.7.0",
    "normalize-scss": "7.0.1",
    "postcss-preset-env": "6.7.0",
    "sass": "1.54.0",
    "sass-loader": "10.3.1"
  },
  "engines": {
    "node": "18.7.0",
    "npm": "8.13.2"
  }
}

运行错误信息

Error: Rule can only have one resource source (provided resource and test + include + exclude) in {
  "use": [
    {
      "loader": "/usr/src/app/node_modules/babel-loader/lib/index.js",
      "options": {
        "configFile": false,
        "babelrc": false,
        "cacheDirectory": true,
        "envName": "server",
        "presets": [
          [
            /usr/src/app/node_modules/@nuxt/babel-preset-app/src/index.js,
            {
              "corejs": {
                "version": 2
              }
            }
          ]
        ]
      },
      "ident": "clonedRuleSet-30.use[0]"
    }
  ]
}
    at checkResourceSource (/usr/src/app/node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:167:11)
    at RuleSet.normalizeRule (/usr/src/app/node_modules/@nuxt/webpack/node_modules/webpack/lib/RuleSet.js:198:4)

排查建议

  • 降级Node版本:Nuxt 2.15.8对Node 18的支持不完善,优先切换到Node 14.x或16.x LTS版本测试,这是触发该错误的常见诱因。
  • 调整Babel依赖版本:当前@babel/core 7.18.10与Nuxt 2.15.8内置的@nuxt/babel-preset-app版本不匹配,将@babel/core锁定到7.15.x版本后重新安装依赖。
  • 移除eslint-webpack-plugin:Nuxt 2.x已内置eslint-loader,额外添加eslint-webpack-plugin会导致Webpack规则冲突,删除该依赖后再运行项目。
  • 清理重复依赖:执行npm ls babel-loader检查是否存在多版本babel-loader,如有则运行npm dedupe去重,或在package.json中锁定babel-loader为8.x版本(Nuxt 2.15.8兼容版本)。
  • 清除缓存重装:删除node_modules、package-lock.json,执行npm install,同时运行npx nuxt clean清除Nuxt缓存,避免旧配置干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:55:18