用patch-package给node_module中的包打补丁

发布时间 2023-06-30 14:18:30作者: seekHelp

问题描述:

在项目开发有些时候,通过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' })
    ......
}