天天看點

使用patch-package修改Node.js依賴包内容

前言

公司項目中使用了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

指令時,便會自動為依賴包打上我們編寫的更新檔了。

繼續閱讀