假设我已经使用bug修复了一个节点模块,我想在功能分支上使用我的固定版本,直到错误修复被合并和发布。
如何在dependencies
的{{1}}中引用我的固定版本?
答案 0 :(得分:518)
来自npm docs:
git://github.com/<user>/<project>.git#<branch>
git://github.com/<user>/<project>.git#feature\/<branch>
从NPM版本1.1.65开始,您可以这样做:
<user>/<project>#<branch>
答案 1 :(得分:127)
根据@ dantheta的评论:
从npm 1.1.65开始,Github URL可以更简洁的用户/项目。 npmjs.org/doc/files/package.json.html您可以附加分支,如user / project#branch
所以
"babel-eslint": "babel/babel-eslint",
或者对于jscs上的标签v1.12.0:
"jscs": "jscs-dev/node-jscs#v1.12.0",
注意,如果你使用npm --save,你会得到更长的git
来自https://docs.npmjs.com/files/package.json#git-urls-as-dependencies
Git URL as Dependencies
Git网址可以是以下形式:
GIT中://github.com/user/project.git#commit-ish 的git +的ssh://用户名@主机名:project.git#提交十岁上下 混帐+ SSH://user@hostname/project.git#commit-ish GIT中+ http://user@hostname/project/blah.git#commit-ish git + https://user@hostname/project/blah.git#commit-ish
commit-ish 可以是任何标记,sha或分支,可以作为参数提供 git checkout。默认值为master。
GitHub网址
从版本1.1.65开始,您可以将GitHub网址称为&#34; foo&#34;: &#34;用户/富项目&#34 ;.就像使用git URL一样,commit-ish后缀也可以 包括在内。例如:
{&#34; name&#34;:&#34; foo&#34;,
&#34;版本&#34;:&#34; 0.0.0&#34;,
&#34;依赖&#34;:{ &#34;表达&#34;:&#34; visionmedia / express&#34;, &#34; mocha&#34;:&#34; visionmedia / mocha#4727d357ea&#34; }}
答案 2 :(得分:37)
如果您想使用devel
或feature
分支,或者您尚未将某个软件包发布到NPM注册表,或者您不能,因为它是私有模块,那么您可以指向使用git://
而不是package.json
中的版本号:
"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。
答案 3 :(得分:25)
在最新版本的NPM上你可以这样做:
npm install gitAuthor/gitRepo#tag
如果repo是有效的NPM包,它将在package.json中自动别名为:
{
"NPMPackageName": "gitAuthor/gitRepo#tag"
}
如果您可以将此添加到@justingordon的答案,那么现在就不需要手动别名了!
答案 4 :(得分:0)
如果它可以帮助任何人,那么我尝试了上述所有操作(使用https:// w / token模式)-仍然没有任何效果。我没有错误,但是在node_modules或package_lock.json中没有安装任何内容。如果我更改了回购名称或用户名中的令牌或任何字母,等等。-我会收到错误消息。所以我知道我有正确的令牌和回购名称。
我终于意识到这是因为我在package.json中拥有的依赖项的名称与我尝试提取的回购的package.json中的名称不匹配。甚至npm install --verbose也不表示有任何问题。似乎忽略了没有错误的依赖性。