Yarn(和NPM)允许您指定Git依赖项,如下所示:
yarn add <git remote url>
Run Code Online (Sandbox Code Playgroud)
要么
yarn add <git remote url>#<branch/commit/tag>
Run Code Online (Sandbox Code Playgroud)
(摘自文档)
在简单的情况下,这很容易理解,在这种情况下,您有一个Git依赖项,并且没有传递依赖项,但并不总是清楚这是如何使用更复杂的依赖关系图.
例1
package.json
...
"dependencies": {
"package-b1": "git@github.com:user/package-b.git"`,
"package-b2": "git@github.com:user/package-b.git"`
}
Run Code Online (Sandbox Code Playgroud)
Will Yarn会发现package-b1并package-b2拥有相同的Git URL吗?他们总是会解析为相同的commit-hash吗?
例2
package.json
...
"dependencies": {
"package-b": "git@github.com:user/package-b.git"`,
"package-c": "git@github.com:user/package-c.git"`
}
Run Code Online (Sandbox Code Playgroud)
github.com/user/package-b/package.json
...
"dependencies": {
"package-c": "git@github.com:user/package-c.git"`
}
Run Code Online (Sandbox Code Playgroud)
请问Yarn是否发现我们的软件包并且package-b都依赖于相同的Git URL?它们会被解析为相同的哈希吗?
例3
package.json
...
"dependencies": {
"package-b": "git@github.com:user/package-b.git"`,
"package-c1": "git@github.com:user/package-c.git"`
}
Run Code Online (Sandbox Code Playgroud)
github.com/user/package-b/package.json
...
"dependencies": {
"package-c2": "git@github.com:user/package-c.git"`
}
Run Code Online (Sandbox Code Playgroud)
此示例相同,但git@github.com:user/package-c.git有两个不同的名称.他们被认为是不同的依赖吗?
例4
package.json
...
"dependencies": {
"package-b": "git@github.com:user/package-b.git"`,
"package-c": "git@github.com:user/package-c.git"`
}
Run Code Online (Sandbox Code Playgroud)
github.com/user/package-b/package.json
...
"dependencies": {
"package-c": "git@github.com:user/package-c-2.git"`
}
Run Code Online (Sandbox Code Playgroud)
此示例也类似,但现在有两个具有相同名称但不同URL的包.纱线会做什么?
摘要
我相信我能想到更多的例子.有人可以说明这些东西是如何工作的吗?
当你意识到每个commit-hash可能有不同之处时,事情变得更加复杂package.json.如果某些包含依赖冲突,Yarn会尝试不同的提交吗?
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |