Скажем, я разветвил модуль узла с ошибкой и хочу использовать свою фиксированную версию, конечно же, в ветке функций, пока исправление не будет объединено и выпущено.
Как бы я сослался на мою фиксированную версию в dependenciesмоем package.json?
Скажем, я разветвил модуль узла с ошибкой и хочу использовать свою фиксированную версию, конечно же, в ветке функций, пока исправление не будет объединено и выпущено.
Как бы я сослался на мою фиксированную версию в dependenciesмоем package.json?
Ответы:
Из документов npm :
git://github.com/<user>/<project>.git#<branch>
git://github.com/<user>/<project>.git#feature\/<branch>
Начиная с версии NPM 1.1.65, вы можете сделать это:
<user>/<project>#<branch>
git://github.com/<user>/<project>.git#feature/blahработал, но <user>/<project>.git#feature/blahне ... возможно, их регулярное выражение должно быть более продвинутым, чтобы принять feature/blahво внимание. Это был npmv1.4.28
за комментарий @ dantheta:
Начиная с версии 1.1.65, URL Github может быть более лаконичным для пользователя / проекта. npmjs.org/doc/files/package.json.html Вы можете прикрепить ветку как user / project # branch
Так
"babel-eslint": "babel/babel-eslint",
Или для тега v1.12.0 на JSCS:
"jscs": "jscs-dev/node-jscs#v1.12.0",
Обратите внимание, что если вы используете npm --save, вы получите более длинный git
С https://docs.npmjs.com/files/package.json#git-urls-as-dependencies
Git URL-адреса как зависимости
URL-адреса Git могут иметь вид:
git: //github.com/user/project.git#commit-ish git + ssh: // user @ hostname: project.git # commit-ish 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. По умолчанию используется мастер.
GitHub URLs
Начиная с версии 1.1.65, вы можете ссылаться на URL GitHub как просто «foo»: «user / foo-project». Как и в случае с git-URL, можно включить суффикс commit-ish. Например:
{"name": "foo",
"version": "0.0.0",
"dependencies": {"express": "visionmedia / express", "mocha": "visionmedia / mocha # 4727d357ea"}}
Если вы хотите использовать develили featureветвиться, или вы не опубликовали определенный пакет в реестре NPM, или вы не можете этого сделать, потому что это закрытый модуль, вы можете указать git://URI вместо номера версии в вашем 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) или частичной или полной фиксации идентификатор.
На последней версии NPM вы можете просто сделать:
npm install gitAuthor/gitRepo#tag
Если репозиторий является действительным пакетом NPM, он будет автоматически именоваться в package.json как:
{
"NPMPackageName": "gitAuthor/gitRepo#tag"
}
Если бы вы могли добавить это к ответу @justingordon, нет необходимости в ручном совмещении имен!
Если это кому-нибудь поможет, я попробовал все выше (https с режимом токена) - и все равно ничего не получалось. Я не получил никаких ошибок, но ничего не будет установлено в node_modules или package_lock.json. Если бы я сменил токен или любую букву в имени репо или имени пользователя и т. Д. - я получил бы ошибку. Я знал, что у меня есть правильный токен и имя репо.
Я наконец понял, что это потому, что имя зависимости, которое было в моем package.json, не совпадало с именем в package.json репозитория, который я пытался получить. Даже установка npm --verbose не говорит о наличии каких-либо проблем. Кажется, что игнорируется зависимость без ошибки.
user/project. npmjs.org/doc/files/package.json.html Вы можете прикрепить ветку какuser/project#branch