webpack 版本冲突详细原因分析及解决办法「建议收藏」

webpack 版本冲突详细原因分析及解决办法「建议收藏」本项目使用vue/cli-4构建,在安装完less-loader后,npmrunserve时候报错,原因是webpack版本冲突报错信息Error:Rulecanonlyhaveoneresourcesource(providedresourceandtest+include+exclude)in{“exclude”:[null],“use”:[{“loader”:“/Users/truezir_tech_team/WebstormProject

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本项目使用vue/cli-4构建,在安装完less-loader后,npm run serve 时候报错,原因是webpack版本冲突

报错信息

Error: Rule can only have one resource source (provided resource and test + include + exclude) in {

“exclude”: [
null
],
“use”: [
{

“loader”: “/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/cache-loader/dist/cjs.js”,
“options”: {

“cacheDirectory”: “/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/.cache/babel-loader”,
“cacheIdentifier”: “72213e73”
},
“ident”: “clonedRuleSet-38[0].rules[0].use[0]”
},
{

“loader”: “/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/babel-loader/lib/index.js”,
“options”: “undefined”,
“ident”: “undefined”
}
]
}
Error: Rule can only have one resource source (provided resource and test + include + exclude) in {

“exclude”: [
null
],
“use”: [
{

“loader”: “/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/cache-loader/dist/cjs.js”,
“options”: {

“cacheDirectory”: “/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/.cache/babel-loader”,
“cacheIdentifier”: “72213e73”
},
“ident”: “clonedRuleSet-38[0].rules[0].use[0]”
},
{

“loader”: “/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/babel-loader/lib/index.js”,
“options”: “undefined”,
“ident”: “undefined”
}
]
}
at checkResourceSource (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:167:11)
at Function.normalizeRule (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:198:4)
at /Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:110:20
at Array.map ()
at Function.normalizeRules (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:109:17)
at new RuleSet (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:104:24)
at new NormalModuleFactory (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/NormalModuleFactory.js:115:18)
at Compiler.createNormalModuleFactory (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:636:31)
at Compiler.newCompilationParams (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:653:30)
at Compiler.compile (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:661:23)
at /Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Watching.js:77:18
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/tapable/lib/HookCodeFactory.js:33:10), :24:1)
at AsyncSeriesHook.lazyCompileHook (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/tapable/lib/Hook.js:154:20)
at Watching._go (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Watching.js:41:32)
at /Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Watching.js:33:9
at Compiler.readRecords (/Users/truezir_tech_team/WebstormProjects/vue_shop/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:529:11)

分析

在npm install 安装完依赖模块后,使用webpack -v查看webpack 版本(注意,如果已经全局安装webpack 该命令会显示全局安装的webapck版本,要查看局部安装的版本号可以使用 npx webpack -v 查看),此时我的局部的webpack版本是4.x.x。接着安装less-loader (npm install less less-loader -D)安装完成后,由于less-loader 版本是10.x.x 版本太高,其依赖的weback 版本为 5.x.x (在执行上面的命令安装less-loader 时,5.x.x的版本会被安装)此时node_modules中就有两个webpack版本,所以在执行 npm run serve 时出现冲突

解决办法

卸载其中的一个版本,具体卸载哪一个呢?例如,我webpack原来的版本是4.x.x。我保留它。卸载另一个也就是5.x的版本,但是less-loader 要依赖它怎么办,很简单,换一个版本低一点的less-loader 就行了

  • 卸载

卸载,不过我试过,直接用下面的命令卸载webpack 好像不起作用

npm uninstall webpack@5.x.x

重新安装之前4.x的版本替换5.x

npm install wepback@^4.0.0
  • 安装低版本less-loader, ^符号表示下载大版本号不大于6的
npm install less less-loader@^6.0.0 -D
  • 运行就不报错了
npm run serve
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169223.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm激活码提示Key is invalid.(注册激活)2022.02.14

    (pycharm激活码提示Key is invalid.)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9AAG1RZ8NI-eyJsaWNlb…

    2022年4月1日
    1.4K
  • 安装drupal

    安装drupal1.把汉化文件拷贝到profiles/standard/translations/可以中文安装2.改变一个文件夹属性,cp一个文件。3.建立数据库4.开始安装,导入翻译中进度条卡死,硬盘不响了,刷新一下继续。5.设置网站名称信箱,管理员帐号信箱。6.安装开始,完毕,注意参阅install.txt文件。7.安装必须模块:Administrationmenu;a…

    2022年7月20日
    16
  • Pycharm 恢复到默认设置

    Pycharm 恢复到默认设置有时候我们想将软件的主题配色、插件等配置初始化,可是会发现卸载并重新安装Pycharm后,软件会默认使用卸载前的个性化设置。解决方案如下:点击Pycharm的“文件”菜单,里面有一个“管理IDE设置”的选项,然后点击“恢复默认设置”。……

    2022年8月28日
    7
  • 如何偷窥到socket对应的内核缓冲区中有什么数据? 有多少数据?—利用recv的MSG_PEEK和ioctlsocket的FIONREAD

    如何偷窥到socket对应的内核缓冲区中有什么数据? 有多少数据?—利用recv的MSG_PEEK和ioctlsocket的FIONREAD很多时候,应用程序仅仅想知道内核缓冲区中有什么数据,或者想知道有多少数据可读,也就是说,应用程序仅仅想偷窥一下里面的数据,并不是想偷取,那怎么办呢?事实上,我们之前已经大致说过,现在,我们继续来复习一下recv的MSG_PEEK:服务端程序为:#include#include//winsock接口#pragmacomm

    2022年7月23日
    11
  • Gradle Kotlin DSL , 你知道它吗?

    Gradle Kotlin DSL , 你知道它吗?一 前言 kotlin 我相信大家实际上还是挺熟悉的 哪怕不熟悉 也没有关系 它跟 Java 是百分百兼容的 很多的语法是有点类似的 所以只要有 Java 基础 学习 Kotlin 并不是什么难事 再加上现在 kotlin 大热 Google 多次在各种大会上力推 如果这个时候我们掌握了 kotlin 肯定能给我们提升很大的帮助 而且 Kotlin 本身就是一门让人爱不释手的语言 写起来还是很赞的 不管你需不需要学习 进来看看 开阔下视野总是没错的 自 Kotlin 被 Google 转正之后 这门语言就备受我们 Android 开发者的

    2025年8月12日
    7
  • NTP时间服务器简介

    NTP(NetworkTimeProtocol)网络时间协议,工作在UDP的123端口上。是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(局域网上与标准间差小于1毫秒,互联网上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP服务器NTP服务器提供准确时间,首先要有准确的时间来源,这一时间…

    2022年4月9日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号