以前修改node_modules常用方式有几种:
1.把源码完整拷出来,放到静态资源里面。弊端:项目代码臃肿,修改几行几行源码就要拷过来整个包。
2.使用webpack拦截引用路径。弊端:需要配置webpack,并且需要设置引用与被引用的路径。(此方法没有试过)
3.自己重新发布npm包或者fork源码到自己的github。弊端:安装依赖的时候需要指定路径。 昨天看到有这么一个patch-package用起来还挺方便的。以下是使用步骤:
1.安装patch-package
npm i patch-package --save-dev // npm安装
yarn add --dev patch-package postinstall-postinstall // yarn安装
2.创建补丁
先按照自己的需求修改源码,然后运行以下命令。会自动生成package-name+version.patch的补丁文件。
npx patch-package package-name // npm创建
yarn patch-package package-name // yarn创建
3.设置钩子,每次安装完依赖的时候都会执行该命令。在package.json配置:
"scripts": {
"postinstall": "patch-package"
}