什么时候要要用到补丁???
有时候产品提了一些交互逻辑比较复杂的,我们想悄悄的偷个懒,于是去到广大开源社区找哪里有砖可以搬一下,好不容易眼前一亮这个好像基本满足我的需求,于是兴高采烈的做汇报说我们前端需求调研已经ok,全都可以做没有什么能够难倒我,然后就吭哧吭哧开始干,当我们引入第三方库写的差不多了,发现人家有bug,作者不再维护,给作者提了pr人家也不发布新版本,,完了完了用不了,哭晕在厕所。。。。有没有似曾相识的感觉
那打补丁挽救一下
安装patch-package
// 使用npm
npm i patch-package
// 或者使用yarn
yarn add patch-package postinstall-postinstall
修改node_modules--》举个栗子🌰
我现在接手的项目是使用的antd@3.xx,Button不支持自定义icon,在node_modules里面取找到button,注意哦,因为我们是使用es6的import进来的模块,es是esm的,lib是comonjs的,所以要去es里面找,然后给button加了一个接收参数叫customIcon,在iconNode接收这个props,渲染一下,最后我们在使用的时候能够接收以下方式的icon。当然了我这里只是举个栗子,或许你有很多别的简单的办法去做这个事情,不要杠我,杠就是你赢。
// 接收一个customIcon来自定义Icon
<Button customIcon={<Icon type="edit" />} type="primary" >编辑</Button>
创建补丁
// 使用npm
npx patch-package package-name
// 或者使用yarn
yarn patch-package package-name
部署
完成以上步骤之后,需要配置一下package.json,这样你的小伙伴在下次npm install的时候就能拉取到你的修改
"scripts": {
"postinstall": "patch-package"
}