前言
公司項目中使用了kue-scheduler包,但是在使用中發現了該包中的一個bug。在debug的過程中直接修複了該漏洞,并向該項目提了PR,作者也很快做出了反應。因為該項目疑似已不再維護,代碼被合并後作者也未釋出新版本。因為後續功能的開發受該bug的影響,隻能采用修改内容建立更新檔的方式修複bug。
本文中建立更新檔的方式為使用了patch-package,可能還有更多類似的工具可以使用,有興趣的朋友可以自己探索。
安裝patch-package
patch-package包可以通過npm進行安裝。
npm i patch-package --save-dev
或者也可以通過yarn進行安裝。
yarn add --dev patch-package postinstall-postinstall
建立更新檔
在修改依賴包内容後,就可以運作patch-package建立patch檔案了。
$ npx patch-package package-name # 使用npm
$ yarn patch-package package-name # 使用yarn
運作後通常會在項目根目錄下的patches目錄中建立一個名為
package-name+version.patch
的檔案。将該patch檔案送出至版本控制中,即可在之後應用該更新檔了。
部署
完成上述操作後,最後還需要修改package.json的内容,在scripts中加入
"postinstall": "patch-package"
。
"scripts": {
"postinstall": "patch-package"
}
至此,在後續運作
npm install
或是
yarn install
指令時,便會自動為依賴包打上我們編寫的更新檔了。