#node.js #git #github #npm #ssh
Вопрос:
У меня есть package.json с двумя частными репозиториями GitHub. Они оба должны использовать другой ключ развертывания SSH. Для репозиториев Git без npm это может быть обработано с помощью хоста .ssh/config
, например:
Host repo1.github.com HostName github.com IdentityFile ~/.ssh/repo1 Host repo2.github.com HostName github.com IdentityFile ~/.ssh/repo2
Тогда в .git/config
репо1 я бы:
[remote "origin"] url = git@repo1.github.com:org/repo1.git
Теперь я подумал, что мог бы просто использовать тот же трюк для зависимостей npm:
npm install "git ssh://git@repo1.github.com/org/repo1.git#commit-hash" --save
К сожалению, это даст мне:
npm ERR! code EUNSUPPORTEDPROTOCOL npm ERR! Unsupported URL Type "ssh:": ssh://git@repo1.github.com/org/repo1.git#commit-hash
Если я использую вместо этого и будет загружен правильный ключ ssh:
npm install "git ssh://git@github.com/org/repo1.git#commit-hash" --save
Тогда все работает так, как и ожидалось. Однако это не решение, так как я хочу иметь возможность запускать npm install
, и тогда ему придется использовать два разных ключа.
Как это можно решить?