npm

patch-package修复npm包的bug

发布于 2024-03-12 18:58:46

背景
有时我们会遇到node_modules里面安装的npm包与我们的项目不兼容或者有bug,与其给官方提issue并等待官方把npm包修复,还不如我们自己动手,丰衣足食,在可以本地修复的情况下,可以使用patch-package将修改记录下来,并提交到git仓库,这样其他小伙伴也能安装修复代码,达到同步效果。

过程

  1. 项目下安装patch-package npm包( patch-package安装官方只支持 npmyarn

    yarn -D patch-package 
  2. 进入node_modules中修复npm包
    注意: 要改动的包在 package.json 中必须声明确定的版本,不能有~或者^的前缀。
  3. 执行yarn patch-package命令
    比如我修改的npm库是lodash,修改完后,执行如下命令,这时候,根目录会多出patches目录记录第三方包内容的更改。

    yarn patch-package lodash
  4. package.json的scripts中增加命令

    {   
          "scripts": {     
              "postinstall": "patch-package"   
           }
    }

    这样一来,每次安装依赖的时候都会通过 postinstall 脚本自动应用 patches 的修改,解决了团队协作的问题。

  5. 最后,将修改通过git提交上去,其他人pull代码后,执行yarn 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
转载参考自:
链接:https://www.jianshu.com/p/70f9e55eb915

0 条评论

发布
问题