Ответ 1
Следующее работало отлично во всех сценариях, которые мне нужны:
"dependencies": {
"GitRepo": "git+https://<token-from-github>:[email protected]/<user>/<GitRepo>.git"
}
Я пытаюсь установить приватный репозиторий github на npm, который включает в себя другие частные репозитории github в качестве зависимости.
Попробовали много способов и сообщений, но никто не работает. Вот что я делаю:
npm install git+https://github.com/myusername/mygitrepository.git
в package.json:
"dependencies": {
"repository1name": "git+https://github.com/myusername/repository1.git",
"repository2name": "git+https://github.com/myusername/repository2.git"
}
Каков правильный способ сделать это?
Следующее работало отлично во всех сценариях, которые мне нужны:
"dependencies": {
"GitRepo": "git+https://<token-from-github>:[email protected]/<user>/<GitRepo>.git"
}
Попробуйте следующее:
"dependencies" : {
"name1" : "git://github.com/user/project.git#commit-ish",
"name2" : "git://github.com/user/project.git#commit-ish"
}
Вы также можете попробовать это, где visionmedia/express - имя/репо:
"dependencies" : {
"express" : "visionmedia/express"
}
Или (если существует модуль пакета npm):
"dependencies" : {
"name": "*"
}
Взято из Документов NPM
Для тех из вас, кто пришел сюда для публичных каталогов, из npm docs: https://docs.npmjs.com/files/package.json#git-urls-as-dependencies
Git URL могут иметь следующий вид:
git://github.com/user/project.git#commit-ish
git+ssh://[email protected]:project.git#commit-ish
git+ssh://[email protected]/project.git#commit-ish
git+http://[email protected]/project/blah.git#commit-ish
git+https://[email protected]/project/blah.git#commit-ish
commit-ish может быть любым тегом, ша или ветвью, который может быть предоставлен в качестве аргумента для проверки git. По умолчанию используется мастер.
Принятый ответ работает, но мне не нравится идея вставить безопасные токены в package.json
Я нашел его в другом месте, просто запустите эту одноразовую команду как описано в git -config manpage.
git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf [email protected]:
GITHUB_TOKEN
может быть настроен как переменная среды или вставлен непосредственно
а затем я устанавливаю частные репозитории github, например: npm install user/repo --save
работает также в Heroku, просто настройте вышеуказанную команду git config ...
как heroku-prebuild
script в package.json
и настройте GITHUB_TOKEN
как конфигурационную конфигурацию Heroku.
Существует несколько способов сделать это, как указывают люди, но кратчайшие версии:
// from master
"depName": "user/repo",
// specific branch
"depName": "user/repo#branch",
// specific commit
"depName": "user/repo#commit",
например.
"dependencies" : {
"hexo-renderer-marked": "amejiarosario/hexo-renderer-marked#patch-1",
"hexo-renderer-marked": "amejiarosario/hexo-renderer-marked#2249507",
"hexo-renderer-marked": "amejiarosario/hexo-renderer-marked",
}
"dependencies": {
"some-package": "github:github_username/some-package"
}
или просто
"dependencies": {
"some-package": "github_username/some-package"
}
Поскольку Git использует curl
под капотом, вы можете использовать файл ~/.netrc
с учетными данными. Для GitHub это будет выглядеть примерно так:
machine github.com
login <github username>
password <password OR github access token>
Если вы решите использовать access tokens
, они могут быть сгенерированы из:
Настройки → Настройки разработчика → Токены личного доступа
Это также должно работать, если вы используете Github Enterprise в своей собственной корпорации. просто поместите URL-адрес вашего предприятия в поле machine
.
Для моей ссылки на частный репозиторий я не хотел включать защищенный токен, и ни одна из других простых (т.е. не указана только в package.json) работала. Вот что работало:
Вот более подробная версия того, как использовать токен Github без публикации в файле package.json
.
git config --global url."https://<TOKEN HERE>:[email protected]/".insteadOf https://[email protected]/
npm install --loglevel verbose --save git+https://[email protected]/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27
В случае сбоя доступа к Github попробуйте выполнить команду git ls-remote...
которую npm install will print