不发布到npm而直接使用github上的库

最近用了一个开源项目的依赖,然后发现需求不太满足,需要添加上一些自己的需求,于是在github上fork了项目后并做了一些改动。这时候问题来了,本来是项目中是通过npm install --save-dev xxx来引用的,如何替换为自己改过后的版本?

解决思路:

方法一: 直接更换node_modules里面对应的依赖源码。

这种方法只能临时性解决问题,当重新npm install一下,改动后的源码将丢失,不能解决问题。

方法二: 去掉依赖,将源码拷出来放到项目中保存。

对于所引用的npm依赖不是很复杂的时候,直接将别人的代码拷到项目中变成项目的一部分,这种方法还是很推荐的,操作起来也简单,复制粘贴就行。

方法三: 注册npm账号发布自己的源。

这种做法相当于将别人的代码拷过来,然后变成了一个自己的开源项目。虽然操作也不算复杂,也能解决问题,但个人感觉怪怪的,不推荐。

方法四: 直接引用github上的项目(本文重点)。

我也是第一次知道还可以有这样的操作,在package.json中将对应的源改为github上的项目地址,就可以替换掉原来的npm源,而github一般都比较稳定,直接引用也不会有很大问题(除非自己以后作死把项目删掉了)。

举个栗子: 我项目中引用了一个叫remember-scroll的项目,package.json如下:

{
  ...
  "dependencies": {
    "remember-scroll": "^0.1.0",
  },
  "devDependencies": {
    ...
  }
}
复制代码

然后我在github项目上fork了原项目并做了一些改动,然后可以通过git@github.com:fengxianqi/remember-scroll.git这个地址把项目clone到本地。于是可以在package.json中替换为github上的源,前缀上需要加上git+ssh//

{
  ...
  "dependencies": {
    "remember-scroll": "git+ssh://git@github.com:fengxianqi/remember-scroll.git",
  },
  "devDependencies": {
    ...
  }
}
复制代码

最后重新npm install一下就可以了。

这里有个建议,就是最好给自己改过的这个项目加一个tag,然后引用项目具体的tag,这是为了防止以后你有对该github项目有了新的改动,不至于影响到业务。具体做法是在后面加上#tag,如:

{
  ...
  "dependencies": {
    "remember-scroll": "git+ssh://git@github.com:fengxianqi/remember-scroll.git#v0.1.1",
  },
  "devDependencies": {
    ...
  }
}
复制代码

这种做法对一些不想发布到npm中去的项目来说,比如公司内部项目,或者个人使用的小项目,是非常可行的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值