假设我已经用一个bug修复了一个节点模块,我想使用我的固定版本,当然是在一个特性分支上,直到bug修复被合并并发布。
如何在package.json的依赖项中引用我的固定版本?
假设我已经用一个bug修复了一个节点模块,我想使用我的固定版本,当然是在一个特性分支上,直到bug修复被合并并发布。
如何在package.json的依赖项中引用我的固定版本?
当前回答
如果你想使用任何特定的提交;你可以用这个
模板:
github:{UserName}/{RepoName}#{CommitId}
Package.json中的用法示例:
"react": "github:facebook/react#e40893d097f6894b4768d749f796302c57161734"
其他回答
解决方案1
在npm文档中,使用git URL:
https://github.com/<user>/<project>.git#<branch>
https://github.com/<user>/<project>.git#feature\/<branch>
不要在GitHub上使用git://协议,它不再被支持
解决方案2
从NPM版本1.1.65开始,你可以使用一个缩短的github URL:
<user>/<project>#<branch>
在NPM的最新版本中,你可以这样做:
npm install gitAuthor/gitRepo#标签
如果repo是一个有效的NPM包,它将在包中自动别名化。json:
{ “NPMPackageName”: “gitAuthor/gitRepo#tag” }
如果你能把这个添加到@justingordon的答案中,现在就不需要手动别名了!
如果你想使用devel或feature分支,或者你还没有将某个包发布到NPM注册表中,或者因为它是私有模块而不能发布,那么你可以在package.json中指向git:// URI而不是版本号:
"dependencies": {
"public": "git://github.com/user/repo.git#ref",
"private": "git+ssh://git@github.com:user/repo.git#ref"
}
#ref部分是可选的,它可以是一个分支(如master),标签(如0.0.1)或部分或完整的提交id。
如果这对任何人都有帮助,我尝试了上面的所有方法(https w/token模式)-仍然没有任何工作。我没有得到错误,但什么都不会安装在node_modules或package_lock.json。如果我更改了令牌或回购名称或用户名中的任何字母,等等-我会得到一个错误。所以我知道我有正确的代币和回购名称。
我最终意识到这是因为包中依赖项的名称。Json与包中的名称不匹配。我试图拉的回购的json。甚至npm install——verbose也没有说有任何问题。它似乎忽略了依赖关系w/o错误。
如果你想使用任何特定的提交;你可以用这个
模板:
github:{UserName}/{RepoName}#{CommitId}
Package.json中的用法示例:
"react": "github:facebook/react#e40893d097f6894b4768d749f796302c57161734"