开发的时候,用到这么多的第三方包,难免有需要修改他们内部源码的时候,当你修改之后,下次yarn、npm install之后,代码又成为未修改之前的状态了,每次都要修改一次,非常麻烦,介绍一个可以一劳永逸的方法。
社区提供了一个工具:patch-package,专门用来处理修改 node_modules 包源码的问题。
用法
修改package.json,添加最后一行: "postinstall": "patch-package",postinstall 是 npm 的钩子,会在依赖包被 install 之后被执行。
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "eslint .",
"postinstall": "patch-package"
},
之后安装patch-package这个库,
npm i patch-package -D
或者
yarn add patch-package postinstall-postinstall -D
注意二者是有区别的。
配置、安装好了之后,我们就可以直接修改第三方包的内容了,修改完之后,运行:
npx patch-package [package-name]
或者
yarn patch-package [package-name]
修改完之后,项目根目录下就多出来一个patches文件夹
这样之后,以后再npm install或者yarn,都会直接用patch之后的文件,真正的一劳永逸。