当前位置: 首页 > news >正文

前端项目依赖包中的依赖包漏洞解决方案

一般情况下,如果是package.json文件中的依赖包出现漏洞,我们可以直接到最新版本或者指定版本即可。

还有一种情况就是依赖包中的子依赖包甚至更深层级的包存在漏洞,这个时候改最外层包的版本并不能解决这个问题。

以下方案可以实现强制升级子包依赖,代码供参考:

1、正常提交package-lock.json文件到代码库

2、在package.json文件中的scripts配置项添加如下命令:

"preinstall": "npx force-resolutions"

"preinstall": "npx npm-force-resolutions"

如果上述命令报错可使用以下命令:

"preinstall": "npm install --package-lock-only --ignore-scripts && npx npm-force-resolutions"

3、在package.json文件中的resolutions配置项中添加需要升级的依赖版本,比如unset-value的无漏洞版本 为2.0.1,那么我们可以配置如下:

"resolutions": {"unset-value": "2.0.1"}

4、本地执行npm i 后提交package-lock.json文件

整个package.json文件看起来应该像这样:
{"name": "xxx-web","version": "0.1.0","private": true,"scripts": {"start": "npm run serve","serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint","preinstall": "npx npm-force-resolutions",},"dependencies": {"axios": "0.24.0","core-js": "3.19.1","echarts": "5.2.1",...},"devDependencies": {"@vue/cli-plugin-babel": "4.5.15","@vue/cli-plugin-eslint": "4.5.15","@vue/cli-plugin-router": "4.5.15",...},"resolutions": {"unset-value": "2.0.1"}
}

相关文章:

  • Python的包管理工具pip安装
  • 不可思议的转折,这部韩剧在口碑上实现逆袭
  • 15.面试算法-树基础
  • 统信服务器操作系统进入【单用户模式】
  • TM-align结果的PDB ID和链ID
  • LeetCode - 850 矩形面积 II
  • 【Linux】Linux基本命令
  • 征程6 上基于 DEB 工具实现包管理
  • c# 三元表达式
  • 基于python深度学习遥感影像地物分类与目标识别、分割实践技术
  • 数据采集使用动态代理被拦截的原因是什么?
  • 声波定位技术在地下管道中如何应用
  • 开箱即用的大模型应用跟踪与批量测试方案
  • 搜索插入位置
  • 小程序兼容问题
  • canvas 五子棋游戏
  • egg(89)--egg之redis的发布和订阅
  • gcc介绍及安装
  • Otto开发初探——微服务依赖管理新利器
  • Twitter赢在开放,三年创造奇迹
  • Vue2.x学习三:事件处理生命周期钩子
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Yii源码解读-服务定位器(Service Locator)
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 爬虫模拟登陆 SegmentFault
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 三栏布局总结
  • 树莓派 - 使用须知
  • 算法-插入排序
  • 推荐一个React的管理后台框架
  • 异常机制详解
  • Spring第一个helloWorld
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ### RabbitMQ五种工作模式:
  • #LLM入门|Prompt#3.3_存储_Memory
  • (2022 CVPR) Unbiased Teacher v2
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm码农论坛 毕业设计 231126
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)nsfocus-绿盟科技笔试题目
  • .config、Kconfig、***_defconfig之间的关系和工作原理
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net IE10 _doPostBack 未定义
  • .NET MVC第三章、三种传值方式
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net6+aspose.words导出word并转pdf
  • .NET面试题(二)
  • .net实现客户区延伸至至非客户区
  • /tmp目录下出现system-private文件夹解决方法