使用patch-package修改Node.js依赖包内容

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

前言

公司项目中使用了kue-scheduler包,但是在使用中发现了该包中的一个bug。在debug的过程中直接修复了该漏洞,并向该项目提了PR,作者也很快做出了反应。因为该项目疑似已不再维护,代码被合并后作者也未发布新版本。因为后续功能的开发受该bug的影响,只能采用修改内容创建补丁的方式修复bug。

本文中创建补丁的方式为使用了patch-package,可能还有更多类似的工具可以使用,有兴趣的朋友可以自己探索。

安装patch-package

patch-package包可以通过npm进行安装。

npm i patch-package --save-dev

或者也可以通过yarn进行安装。

yarn add --dev patch-package postinstall-postinstall

创建补丁

在修改依赖包内容后,就可以运行patch-package创建patch文件了。

$ npx patch-package package-name   # 使用npm
$ yarn patch-package package-name  # 使用yarn

运行后通常会在项目根目录下的patches目录中创建一个名为package-name+version.patch的文件。将该patch文件提交至版本控制中,即可在之后应用该补丁了。

部署

完成上述操作后,最后还需要修改package.json的内容,在scripts中加入"postinstall": "patch-package"

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

至此,在后续运行npm install或是yarn install命令时,便会自动为依赖包打上我们编写的补丁了。

patch-package修改node_modules下的依赖包源码 这是npm官网上对patch-package的说明,其意思就是可以让大家立即对npm依赖的源码进行自定义修改。其实大多数时候是不需要自己去改依赖源码的,毕竟大多数情况你写的代码肯定没别人作者自己写得好,但是遇到bug了,自己去及时改还是可以的 阅读详情

相关推荐

patch-packagenode_module中的包打补丁

在项目中用到一个第三方库,但这个库有个bug并且已经影响到了你的项目,需要修改这个库的源码才能解决。那么就可以用patch-packagenode_module中的包打补丁。

KOOK007的博客 1598

Patch-Package:一款灵活的开源依赖修复工具

它让我们能够在不破坏原有开发流程的前提下进行灵活的修改,是开源项目和团队协作中的得力助手。通过掌握 Patch-Package使用方法和最佳实践,你可以大大提高项目的开发效率,避免依赖管理带来的困扰。(原因是笔者对select的组件进行了二次封装,某些value的变化是在下一个 run loop发生的,而element-plus中的表单检查是线性触发的)开发者可以将开源库的源码 Fork 到自己的代码仓库中,然后在 Fork 后的仓库中进行修改和维护。开源库可能存在 Bug 或者与项目不兼的问题。

datacreating的博客 1712

Nodejspatch-package是什么,作用是什么,怎么实现的,优势是什么,劣势是什么

大白话系列之:去除patch-package的神秘面纱!

weixin_48634509的博客 1999

patch-package依赖打补丁实例详解

修改依赖文件,然后运行patch-package来创建patch文件了。我这里用element-ui来举例子。patch是锁定版本号的,如果升级了版本,patch将会失效。可以在package.json锁定版本号。此时,系统会自动创建一个文件夹,如下图所示。如果提示如下,则表示不支持该包管理器。官方只支持 npm 和 yarn。官方只支持 npm 和 yarn。注意:不要使用cnpm。...

银鞍照白马的博客 4182

使用patch-package定制node_modules 中的依赖

背景: 首先,需求是这样,Vue项目中使用的是iview第三方UI库,要修改组件DatePicker中默认选中的当日的日期(如下图),实现无论在哪个时区,均显示中国的日期 (图1-1) 由于,iview提供的api中并没有可以设置当前选中的日期的参数,而是默认去的new Date(),也就是当前系统的时间,所以这个默认选...

qq_32429257的博客 8890

【亲测免费】 patch-package 使用教程

`patch-package` 是一个用于 Node.js 项目的工具,允许开发者对 `node_modules` 中的依赖包进行修改并生成补丁文件。这些补丁文件可以在项目安装依赖时自动应用,从而确保修改的持久性。这对于需要对第三方依赖进行临时修复的场景非常有用。 ## 项目快速启动 ### 安装 patch-package 首先,你需要在你的项目中安装 `patch-package`: ...

gitblog_01159的博客 1590

关于 patch-package 修改 node_modules 源码后无效的问题

使用patch-package定制node_modules 中的依赖包 Step1: 通过命令安装 patch-package npm install patch-package --save-dev Step2: 修改项目根目录下的 package.json 文件 在 package.json 文件中的 scripts 中加入 “postinstall”: “patch-package” Step3: 手动修改 node_modules 依赖包中的源码 Step4: 手动执行命令创建 npx pa

weixin_45093753的博客 6148

使用patch-package自动修改node_modules中的内/打补丁

使用VuePress搭建个人博客的过程中,我需要使用到一个用来复制代码块的插件uepress-plugin-nuggets-style-copy。问题:插件可以正常安装,但是启动会报错。通过查看错误信息,定位是插件中的copy.vue文件出现错误,在网上查找方法,发现是通过打补丁修改插件源码的方式来解决报错的问题。

Vivien_CC的博客 1568

源码补丁神器—patch-package

这令人沮丧,因为已经编写了许多特定于此依赖项的代码,如果替换依赖库,这些代码很可能会被浪费。安装成功后查看之前修改node_modules 依赖包中的文件,查看修改的代码是否依然存在,如果之前修改代码依然存在即表明补丁文件已经生效,如果你之前修改的代码不存在即表明补丁文件没有生效。后几种方法都比较复杂,并且会导致项目臃肿,更易忘记自己修改了源码的哪个部分,而且更新麻烦,每次都需要手动去更新代码,无法与插件同步更新。问题已定位到,要修改显示电子签章的代码是在node_modules依赖包中。

JDDTechTalk的博客 1585

使用patch-packagenode_modules包打补丁

1.安装 patch-package npm i patch-package --save-dev 2.修改项目根目录下的 package.json 文件 在 package.json 文件中的 scripts 中加入 “postinstall”: “patch-package” 3.修改 node_modules 依赖包中的源码 4.执行命令npx patch-package package-name npx patch-package package-name 其中命令中的 package-nam

weixin_42232325的博客 1921

Vue中 引入使用 patch-package依赖打补丁 (以修改 vue-pdf 打包后 [hash].worker.js 路径问题为例)

patch-package npm地址patch-package github文档如果不需要在生产中运行 npm (如:正在制作 web 前端,则可使用 --save dev)

明天也要努力的博客 4505

js使用patch-package修改node_modules的文件并加入版本控制

背景 我们日常开发中会遇到 npm 包有问题,通常的修复方法有两种 1、提交 PR 或 issue,等待作者修改 2、copy 源码到本地修改 然鹅,两种方法都不太科学,弊端太明显,那么使用 patch-package 是如何修改的。 patch-package 1、安装 yarn add patch-package -D 2、在 node_modules 找一个包修改源码,如图这里我找的 lodash 的 cloneDeep.js 文件,增加一行代码 3、生成补丁 npx patch-package

分享前端开发工程师的一些日常生活、前端知识点、职业发展、对一些问题的看法、感悟等等 2083

Vue修改node_modules中的第三方插件代码(后续npm install依旧保留该修改

有时在开发过程中,如果node_modules 中我们使用的第三方插件有bug (作者又没有提供相应的API供我们扩展修改,提了issue也没人管)或者本身不满足我们的地方, 我们需要更改node_modules 依赖包中的源码时,为了不更改后,别人或者自己重新install 时, 导致我们的更改丢失,我们需要用到patch-package。(魔改的同时,也局限了升级的能力,尽量还是去提issue)

山有木兮木有枝 心悦君兮君不知 5308

修改node_modules源码,使用patch-package打补丁

修改node_modules源码,并保存,使用patch-package打补丁

m0_66908041的博客 815

patch-package 打补丁方案详解

patch-package 补丁方案详解 patch-package 是一个实用的 npm 包补丁工具,允许开发者直接修改 node_modules 中的第三方包代码并生成持久化补丁。其核心原理是通过 git diff 记录文件差异,生成.patch补丁文件,并在每次安装依赖后自动应用这些补丁。 使用步骤: 安装 patch-package 和 postinstall-postinstall 修改 node_modules 中的目标文件 运行 npx patch-package 生成补丁文件 配置 post

qq_41914181的博客 440

使用 patch-package 修改 node_modules 源码

1 npm install patch-package --save-dev 2 在 package.json 文件中的 scripts 节点 中加入 "postinstall": "patch-package" 3 修改 node_modules 中的源码 4 npx patch-package package-name package-name 就是你修改了源码的那个包的名字(package.json 中 dependencies 里面的名字) ...

MAIMIHO的博客 390

patch-package 修改 node_modules流程以及注意点

patch-package是前端开发中用于修改node_modules依赖的工具,通过生成补丁文件实现源码修改的持久化。使用步骤:1) 安装工具并配置postinstall脚本;2) 直接修改目标npm包源码后,运行npx patch-package 包名生成补丁文件;3) 提交patches目录到Git,重装依赖时自动应用补丁。适用于需临时修改第三方库但不想fork的场景,尤其配合React Native等项目时需清理构建缓存。最后需检查.patch文件是否包含预期改动。

weixin_73318685的博客 363

怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。

怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。第三方库有bug怎么自己修改,怎么给npm包打补丁,给npm包打补丁的笔记,怎么修改npm第三方模块。

csdn1940879828的博客 704

vue如何对node_modules源码进行修改,对第三方依赖包源码修改

vue如何对node_modules源码进行修改,对第三方依赖包源码修改

m0_61663332的博客 4525
上一篇: MySQL查看、修改字符集及Collation
下一篇: C语言从零开始0X01:变量与基本运算
ghosind
博客等级 码龄12年 133粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值