如何修改 npm 依赖代码?

公司内部仓库有很多私有 npm 包。这些包能够使用,但经常需要更改其源码来 hotfix bug 或实现特殊需求。这时简单的方案有这几种:

  1. 直接修改 node_modules 内源码。这在自动化部署时会产生问题(线上自动化构建时,拉取的是未经修改的依赖)。

  2. fork 依赖 git 源码,修改后 npm link 到业务项目中。这时原依赖的 git 仓库并不适合与业务项目做合并。

  3. 通知依赖作者等待版本更新。这时一旦跨部门那么效率并不高。

请问哪种方式比较靠谱,或有什么更加合适的方案呢?

阅读 10k
2 个回答

主要还是使用第二种方法,更好的做法是自建一个 npm 的仓库,这样公司内部就可以从这个上面发布和下载包。

如果没有条件建一个 npm 仓库,又想魔改别人的包,那就 fork 到 github 上,如果有 yarn.lock 或者 package-lock.json 的话,就要多注意里面锁定的 commit 的 hash 对不对,如果更改这个包的话,就要多留意这两个文件,保证引用的是正确的版本,如果没有这种锁定版本的文件的话,最好在 package.json 里面锁定 commit 。

没什么办法解决这种问题。这也就是为什么大公司一般都是自己造轮子,因为鞋合不合脚,只有脚知道。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题