用patch-package给node_module中的包打补丁
问题描述:
在项目开发有些时候,通过npm下载node_modules依赖后会出现个别依赖有问题,在开发和打包过程中需要修改node_modules中的依赖,但是这样是治标不治本的,等到下次重新获取依赖的时候本次修改的依赖会重新获取,导致修改的依赖需要重修修改。为解决这一问题,我们需要给node_modules打补丁,控制对该包的修改。
1.安装patch-package
npm install patch-package --save-dev
或者
yarn add patch-package postinstall-postinstall
(npm安装不需要postinstall-postinstall依赖)
2.修改本地项目的package.json文件,增加命令
"postinstall": "patch-package"
3.到node_modules中找到对应的库,并修改源码
4.手动执行命令,创建补丁文件
// 创建补丁文件
npx patch-package package-name // package-name为包名
// 如 npx patch-package xlsx-styly
5.定位到文件
// vue.config.js
chainWebpack(config) {
......
config.externals({ './cptable': 'var cptable' })
......
}