Npm устанавливает частные репозитории github по зависимости в package.json

Я пытаюсь установить приватный репозиторий 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"
}

Каков правильный способ сделать это?

Ответ 1

Следующее работало отлично во всех сценариях, которые мне нужны:

"dependencies": {
"GitRepo": "git+https://<token-from-github>:[email protected]/<user>/<GitRepo>.git"
}

Ответ 2

Попробуйте следующее:

"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

Ответ 3

Для тех из вас, кто пришел сюда для публичных каталогов, из npm docs: https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Git URL-адреса в качестве зависимостей

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. По умолчанию используется мастер.

Ответ 4

Принятый ответ работает, но мне не нравится идея вставить безопасные токены в 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.

Ответ 5

Существует несколько способов сделать это, как указывают люди, но кратчайшие версии:

// 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",
}

Ответ 7

Поскольку Git использует curl под капотом, вы можете использовать файл ~/.netrc с учетными данными. Для GitHub это будет выглядеть примерно так:

machine github.com
  login <github username>
  password <password OR github access token>

Если вы решите использовать access tokens, они могут быть сгенерированы из:

Настройки → Настройки разработчика → Токены личного доступа

Это также должно работать, если вы используете Github Enterprise в своей собственной корпорации. просто поместите URL-адрес вашего предприятия в поле machine.

Ответ 8

Для моей ссылки на частный репозиторий я не хотел включать защищенный токен, и ни одна из других простых (т.е. не указана только в package.json) работала. Вот что работало:

  • Пошел в GitHub.com
  • Переход в частный репозиторий
  • Нажмите "Клонировать или загрузить" и скопированный URL-адрес (который не соответствует приведенным выше примерам)
  • Добавлено # commit-sha
  • Установка rpm npm

Ответ 9

Вот более подробная версия того, как использовать токен Github без публикации в файле package.json.

  1. Создать личный токен доступа к GitHub
  2. Настройка перезаписи URL в ~/.gitconfig
git config --global url."https://<TOKEN HERE>:[email protected]/".insteadOf https://[email protected]/
  1. Установите частный репозиторий. Уровень подробного журнала для отладки ошибок доступа.
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