modules node 太大了_那些修改node_modules的骚操作

本文介绍了当npm包存在问题时,如何通过多种方式进行源码修改,重点讲解了patch-package工具的使用方法及其优势,同时也提到了其他如单文件修改、拷贝覆盖、逻辑修改引用等替代方案,并提醒了修改源码可能带来的风险。
摘要由CSDN通过智能技术生成

前言

相信有过一些前端开发经验的同学都有遇到过使用的npm包有bug,或者npm包只要再修改一点点就能满足自己的需求这样尴尬的情况。如果给包作者提需求,作者一般也不会马上给你修改,这时候就需要使用各种修改npm包源码的骚操作了。

通常有四类做法:单个文件修改法拷贝覆盖法

修改引用法

整个项目copy法直接引用法

发布私包法

外部代码修改法

最优解patch-package大法

先直接讲最优解吧

patch-package是一个用来给其他npm包打补丁的包,实际原理也是在本工程保存一份修改的代码,只不过不是用全量代码的形式保存,而是保存了git diff的结果,节省了代码体积

用法如下:npm i -S patch-package安装patch-package

直接在node_modules下修改需要修改的包源码

执行npx patch-package 包名, patch-package会将当前node_modules下的源码与原始源码进行git diff,并在项目根目录下生成一个patch补丁文件

后续只要执行npx patch-package命令,就会把项目patches目录下的补丁应用到node_modules的对应包中,这个执行时机一般可以设置为postinstall这个勾子

"scripts": {

"postinstall": "patch-package"

}

为什么是最优解?

毕竟是专门团队开发的工具,在能实现目的的前提下,该考虑的都帮你考虑好了,比如这个包的版本升级了怎么办

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值