npm安装compression-webpack-plugin插件报错问题记录_欧阳奔少的博客-程序员宅基地

技术标签: webpack  vue  前端  npm  

问题再现

因项目需要,在前端项目中安装compression-webpack-plugin插件

  • 运行npm install compression-webpack-plugin命令之后在package.json文件中已经出现了"compression-webpack-plugin": "^7.1.2"这个依赖项
  • 运行npm run serve命令启动项目,报错信息如下:
 ERROR  Error: Rule can only have one resource source (provided resource and test + include + exclude) in {
    
  "exclude": [
    null
  ],
  "use": [
    {
    
      "loader": "/Users/lyb/Downloads/wcp-front-vue/node_modules/cache-loader/dist/cjs.js",
      "options": {
    
        "cacheDirectory": "/Users/lyb/Downloads/wcp-front-vue/node_modules/.cache/babel-loader",
        "cacheIdentifier": "61a7e43e"
      },
      "ident": "clonedRuleSet-38[0].rules[0].use[0]"
    },
    {
    
      "loader": "/Users/lyb/Downloads/wcp-front-vue/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/lyb/Downloads/wcp-front-vue/node_modules/cache-loader/dist/cjs.js",
      "options": {
    
        "cacheDirectory": "/Users/lyb/Downloads/wcp-front-vue/node_modules/.cache/babel-loader",
        "cacheIdentifier": "61a7e43e"
      },
      "ident": "clonedRuleSet-38[0].rules[0].use[0]"
    },
    {
    
      "loader": "/Users/lyb/Downloads/wcp-front-vue/node_modules/babel-loader/lib/index.js",
      "options": "undefined",
      "ident": "undefined"
    }
  ]
}
    at checkResourceSource (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:167:11)
    at Function.normalizeRule (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:198:4)
    at /Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:110:20
    at Array.map (<anonymous>)
    at Function.normalizeRules (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:109:17)
    at new RuleSet (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/RuleSet.js:104:24)
    at new NormalModuleFactory (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/NormalModuleFactory.js:115:18)
    at Compiler.createNormalModuleFactory (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:636:31)
    at Compiler.newCompilationParams (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:653:30)
    at Compiler.compile (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:661:23)
    at /Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Watching.js:77:18
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/lyb/Downloads/wcp-front-vue/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:24:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/lyb/Downloads/wcp-front-vue/node_modules/tapable/lib/Hook.js:154:20)
    at Watching._go (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Watching.js:41:32)
    at /Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Watching.js:33:9
    at Compiler.readRecords (/Users/lyb/Downloads/wcp-front-vue/node_modules/@vue/cli-service/node_modules/webpack/lib/Compiler.js:529:11)
npm ERR! code 1
npm ERR! path /Users/lyb/Downloads/wcp-front-vue
npm ERR! command failed
npm ERR! command sh -c vue-cli-service serve

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/lyb/.npm/_logs/2021-03-10T08_03_23_083Z-debug.log
  • 出现错误后小编只能求助度娘,度娘的解决方案如下:

    • 卸载webpacknpm uninstall webpack
    • 重新安装webpack:npm install [email protected] --save-dev ,这个时候直接报错,报错信息如下:
    npm ERR! code ERESOLVE
    npm ERR! ERESOLVE unable to resolve dependency tree
    npm ERR! 
    npm ERR! Found: [email protected]
    npm ERR! node_modules/webpack
    npm ERR!   dev webpack@"4.0.0" from the root project
    npm ERR!   webpack@"^4.0.0" from @vue/[email protected]
    npm ERR!   node_modules/@vue/cli-plugin-babel
    npm ERR!     dev @vue/cli-plugin-babel@"^4.2.3" from the root project
    npm ERR!   4 more (terser-webpack-plugin, @vue/cli-plugin-eslint, ...)
    npm ERR! 
    npm ERR! Could not resolve dependency:
    npm ERR! peer webpack@"^5.1.0" from [email protected]
    npm ERR! node_modules/compression-webpack-plugin
    npm ERR!   compression-webpack-plugin@"^7.1.2" from the root project
    npm ERR! 
    npm ERR! Fix the upstream dependency conflict, or retry
    npm ERR! this command with --force, or --legacy-peer-deps
    npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
    npm ERR! 
    npm ERR! See /Users/lyb/.npm/eresolve-report.txt for a full report.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /Users/lyb/.npm/_logs/2021-03-10T08_16_11_779Z-debug.log
    

    问题原因:因为两个插件依赖的webpack包版本不一致导致冲突

解决方案

  • 卸载高版本的compression-webpack-plugin插件:npm uninstall compression-webpack-plugin

  • 卸载webpack插件:npm uninstall webpack

  • 安装低版本的compression-webpack-plugin插件:npm install [email protected]

  • 重新安装webpack插件:npm install [email protected] --save-dev

经过以上步骤之后完美解决问题

总结

在使用脚手架的时候不要过度追求新版本,要考虑不同插件之间对依赖项的版本问题。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lyb1832567496/article/details/114639374

智能推荐

标题栏滑动渐变效果的实现-程序员宅基地

本文实现顶部标题栏在页面滑动过程中,从透明渐变到有颜色的效果。

unity绘制管道_Unity可编程渲染管线(SRP)教程:一、自定义管线-程序员宅基地

控制渲染创建pipeline asset 和 instance.剔除、过滤、排序、渲染.保持内存清洁.提供良好的编辑体验.这是Unity scriptable render pipeline系列教程的第一部分。本教程假设你首先通过了Basics系列教程和Procedural Grid教程。Rendering系列的头几部分也很有帮助。本教程使用Unity 2018.3.0f2完成。创建一个Pipel..._unity 没有piplineasset

计算机学院吉祥物意见征集,浙江理工大学吉祥物揭晓及吉祥物设计说明-程序员宅基地

中国第一征集网http://www.1zhengji.com/,中国最大的征集网,欢迎访问www.1zhengji.com浙江理工大学吉祥物揭晓及吉祥物设计说明近日,浙江理工大学吉祥物正式发布。李欲晓的设计方案——吉祥物《思思》成功入选。学校吉祥物作为校园文化建设的外在艺术形象,富有活力与生机,体现校园文化的精神和内涵,传承学校深厚的历史底蕴和人文特色,是学校文化建设的重要内容。自去年12月以来,..._1zhengji

《learning laravel》翻译第六章-----部署我们的Laravel应用_laravel learning-程序员宅基地

重要: 这是一个稳定的版本. 让我们知道你所喜欢和不喜欢的东西。 我们将会修改bug和错误,并且定期更新所有章节。 注意: 我们已经更新这本书支持到Laravel 5.2了。第五章:部署我们的Laravel应用目前,我们只是在我们本地的私人机器上工作。我们必须将我们的代码部署到托管服务或者服务器上才能让别人访问我们的应用。有许多方法可以让你的应用程序被世界上其他人看到!在本章中,我将会告_laravel learning

算法设计与分析(第二版)上机实验题——Java实现_算法设计与分析实验-程序员宅基地

算法设计与分析第二章实验5.求两个数最大公约数第二章实验5.求两个数最大公约数import java.util.Scanner;public class CommonDivisor { public static void main(String[] args) { go One = new go(); Scanner scanner = new Scanner(System.in);//输入数据 int n = scanner.nextIn_算法设计与分析实验

关于python安装pip及crypto库_crypto pip-程序员宅基地

Capture The Flag (CTF) 常用到的crypto库,有很多技术人员不知道怎么安装。而crypto库已经有三五年没有团队维护更新,网络上很多旧版安装方法不可用。本篇记录了作者安装pip及PyCryptodome库的过程。最新安装测试于2020.7,新版适用。Linux系统,Windows系统均有记录。判断系统是否已安装pip:pip --version下载并安装pip,linux和windows系统的操作方法详见代码:curl https://bootstrap.pypa_crypto pip

随便推点

小数位数修约,四舍六入五成双-程序员宅基地

def Little (x,y): # 定义函数,x是要修约的数,y是要保留的小数位数。假设是-0.32561,3 ABS_x = abs(x) # 取x的绝对值0.32561 Y = int(ABS_x*10**y) # 提取需要保留的数字并输出为整数325 Y1 = ABS_x*10**(y+1) - Y*10 # 提取剩余的数字输出为浮点数 325

Ubuntu下samba文件共享教程(一)_armbian samba_花花少年的博客-程序员宅基地

一、准备工作关闭防火墙sudo ufw disable //关闭防火墙 sudo ufw enable //开启sudo ufw status //查看状态二、samba服务端操作Linux samba的配置和使用ubuntu 20.04 安装配置Samba服务,Windows 和 linux协同工作下载安装Sambasudo apt-get install samba创建并修改共享文件夹权限# 在/home目录下创建共享的文件夹,名为mys_armbian samba

args参数_如果args中存在某一个参数就使用-程序员宅基地

args[] 在命令行运行时候输入的参数,因为参数可以为多个,所以要用数组来存,比如dos的copy命令: copy c:/*.* d:/*.* 这就是两个参数c:/*.*和d:/*.* java在 命令行运行的时候 要用到java命令: java Test value1 value2 后面就是两个参数在main里面args[]就是两个长度的数组value1存在args[0]中,va_如果args中存在某一个参数就使用

Oracle系列:Oracle入门_oracle单个段-程序员宅基地

Oracle系列:Oracle入门一,什么是Oracle? 1,Oracle是一个 对象关系 数据库管理系统(ORDBMS); 2,基于客户/服务器(C/S)系统结构,是用户与数据库之间的接口。 客户端执行与用户的交互,服务器端执行数据库操作。二,Oracle的特点? 1,企业级应用的大型数据库; 2,安全,完整性强; 3,分布式处理; 4,可移植性; 三,Oracle体系结构,以及O_oracle单个段

OpenCV详细介绍,包含的模块以及组成结构_opencv 模块-程序员宅基地

欢迎来到OpenCV的世界OpenCV是什么?OpenCV 是一个开源的计算机视觉库,可以从 http://opencv.org 获取。1999 年,Gary Bradski(加里·布拉德斯基)当时在英特尔任职,怀着通过为计算机视觉和人工智能的从业者提供稳定的基础架构并以此来推动产业发展的美好愿景,他启动了 OpenCV 项目。OpenCV 库用C语言和 C++ 语言编写,可以在 Wind..._opencv 模块

DDCTF2018安卓部分WriteUp_hello baby dex ctf-程序员宅基地

0x0 前言 感觉自己还是太菜了,还静不下心去学习,可能这就是自己这么菜的原因吧。七天的时间零零散散的做了三个安卓题,简单写一下思路。题目及部分解题脚本https://pan.baidu.com/s/1MpnW_st_VnRRUJx6rHqZOA0x1 RSA 刚看到题目还以为程序实现了RSA加密,因此找RSA加密算法找了好久。后来才发现程序经过运算生成一个大数,然后对输入进行取模,如果能整除..._hello baby dex ctf