我尝试从npm迁移到yarn,以便能够使用.lock文件,但我很难指定我们正在使用的其中一个依赖项的版本。当试图像这样指定它时:
git+http://gitlab.local.fb/project/name.git#1.0.0
它返回以下错误:
拒绝下载git repo " http://gitlab.local.fb/project/name.git"通过HTTP没有 提交哈希
通过
添加yarn add git+http://gitlab.local.fb/project/name.git#1.0.0
返回相同的错误。
使用提交版本指定它似乎有效,但要求它真的很奇怪,而不是人类可读的版本标签。我做错了什么或Yarn不支持gitlab的这个功能吗?
答案 0 :(得分:0)
2018年更新:使用更新的yarn,您可以执行yarn
或yarn install
,并且它可以处理以长格式(专用git repos)编写的依赖关系:
"my-repo": "git+ssh://git@gitlab.com/my-user-or-group-name/my-repo.git#tag-or-commitish",
谨慎对待git+ssh
与ssh+git
-一个可行,而另一个可行-即使git可以理解。
简写形式
"my-repo": "gitlab:my-user-or-group-name/my-repo#tag-or-commitish",
可能无法完全发挥作用-有跟踪此错误的错误。
#tag-or-commitish
部分可以是#production
之类的分支或标签#v1.0.1
等。
答案 1 :(得分:-1)
问题是http。
请尝试使用git+https
或git+ssh
。
我也认为现在应该解决这个问题:https://github.com/yarnpkg/yarn/issues/2117 与PR https://github.com/yarnpkg/yarn/pull/2449