背景
有時我們會遇到node_modules里面安裝的npm包與我們的項目不兼容或者有bug,與其給官方提issue并等待官方把npm包修復,還不如我們自己動手,豐衣足食,在可以本地修復的情況下,可以使用patch-package將修改記錄下來,并提交到git倉庫,這樣其他小伙伴也能安裝修復代碼,達到同步效果。
過程
- 項目下安裝
patch-package
npm包(patch-package安裝官方只支持 npm 和 yarn)
npm install -D patch-package
- 進入node_modules中修復npm包
注意: 要改動的包在 package.json 中必須聲明確定的版本,不能有~或者^的前綴。 - 執行
npx patch-package
命令
比如我修改的npm庫是lodash,修改完后,執行如下命令,這時候,根目錄會多出patches目錄記錄第三方包內容的更改。
npx patch-package lodash
- package.json的scripts中增加命令
{
"scripts": {
"postinstall": "patch-package"
}
}
這樣一來,每次安裝依賴的時候都會通過 postinstall 腳本自動應用 patches 的修改,解決了團隊協作的問題。
- 最后,將修改通過git提交上去,其他人pull代碼后,執行npm install,就能同步到patch-package的修改了。
其他:nrm切換npm源
- 安裝:
npm install -g nrm
- nrm ls
- npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
- 使用淘寶源
nrm use taobao