通过patch-package创建补丁修改node_modules依赖下的源码

简介: 通过patch-package创建补丁修改node_modules依赖下的源码

通过patch-package创建补丁修改node_modules依赖下的源码

简述

node_modules下是依赖源码,打包的时候是不会打包进去的。但有时候我们需要修改依赖的源码,这个时候,其他人使用npm install会拉取最新的依赖,而把修改的源码覆盖。

解决

1、将整个库提到node-modules外面来,但是这样会使项目十分的臃肿
2、将这部分源码提出来重新封装,这个方法不错,但是需要一定的时间成本,也不太理想
3、这里推荐使用patch-package创建补丁的方法,通过这种方法后,别人使用npm install,就不会有覆盖的风险了。

1、安装patch-package

// 开发测试环境
npm install patch-package --save-dev

// 生产环境
npm install patch-package --save

--save 和 --save-dev简述

2、修改node_modules源码

3、在package.json,将scripts中加入"postinstall": "patch-package",这个是为了npm install的时候自动为依赖包打上我们改过的依赖

"scripts": {
   
   
    "postinstall": "patch-package"
 },

4、修改完依赖后,创建补丁

npx patch-package 依赖名称

// 例如
npx patch-package echarts

这个时候,根目录下会创建一个叫patches的文件,下面的文件就是补丁文件,里面是你修改依赖的最新源码。
image.png

将node_modules删掉,使用npm i 重新安装依赖,再次打开你修改的地方,就会发现并没有被覆盖。

参考:https://zhuanlan.zhihu.com/p/453771807
githab:https://github.com/ds300/patch-package

目录
相关文章
|
6月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
435 1
|
6月前
|
JavaScript 前端开发
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
|
5月前
vue.js+node.js+mysql在线聊天室源码
vue.js+node.js+mysql在线聊天室源码 技术栈:vue.js+Element UI+node.js+socket.io+mysql
167 3
|
6月前
node的私服中Verdaccio批量发布和手动发布依赖
node的私服中Verdaccio批量发布和手动发布依赖
192 1
|
6月前
|
JSON JavaScript 关系型数据库
❤Nodejs 第十六章(Nodejs环境安装和依赖使用)
【4月更文挑战第16天】本文介绍了Node.js环境安装和项目搭建步骤。检查Node.js和npm版本安装核心依赖,如Express(Web应用框架)、MySQL库、CORS(解决跨域问题)、body-parser(解析POST数据)、express-jwt和jsonwebtoken(JWT验证)、multer(文件上传处理)、ws(WebSocket支持),以及可选的dotenv(管理环境变量)和ejs(模板引擎)。完整源码可在Gitee开源项目[nexusapi](https://gitee.com/lintaibai/nexusapi)中找到。
83 0
|
6月前
|
JavaScript 前端开发 关系型数据库
分享66个NodeJs系统源码总有一个是你想要的
分享66个NodeJs系统源码总有一个是你想要的
147 1
|
6月前
|
数据采集 JavaScript 前端开发
分享58个NodeJs爬虫源码总有一个是你想要的
分享58个NodeJs爬虫源码总有一个是你想要的
85 4
|
6月前
|
存储 JavaScript 前端开发
分享72个NodeJs项目源码总有一个是你想要的
分享72个NodeJs项目源码总有一个是你想要的
208 0
|
6月前
|
数据采集 JavaScript 前端开发
分享66个NodeJs项目源码总有一个是你想要的
分享66个NodeJs项目源码总有一个是你想要的
292 0
|
6月前
|
JavaScript 数据可视化 前端开发
【Node.js】低代码管理系统源码:只需点击鼠标,搭建属于你的企业应用
【Node.js】低代码管理系统源码:只需点击鼠标,搭建属于你的企业应用
80 1