J'ai un dépôt privé que je souhaite installer dans mon fichier package.json.
"private-module": "git+ssh://[email protected]:private/private-module.git"
Par défaut, npm utilise votre clé privée par défaut. Je veux pouvoir spécifier la clé ssh que npm doit utiliser lors de l'exécution de npm install
. Est-ce qu'il y a un moyen de faire ça?
Voici quelques solutions:
Ajoutez une entrée à votre ~/.ssh/config
. Par exemple:
Hôte bitbucket.org IdentityFile ~/.ssh/bitbucket_key IdentitiesOui seulement
Utilisation ssh-agent
et ajoutez au préalable votre clé à l'instance d'agent.
Utilisez quelque chose comme ssh-ident pour choisir dynamiquement les agents et identités ssh en fonction du répertoire de travail actuel ou des arguments passés à ssh-ident. Comme leur readme l'indique, vous devez généralement alias ssh-ident pour ssh
afin qu'il soit automatiquement utilisé partout.
Après avoir effectué les modifications dans la première partie de mscdex answer vous devrez peut-être ajouter l'hôte à la liste des hôtes connus - avant le npm install
la commande fonctionnera.
Vous pouvez le faire en clonant le référentiel privé dans un autre répertoire:
git clone ssh://[email protected]:private/private-module.git
Il vous sera peut-être demandé si vous souhaitez continuer, tapez yes
et entrez, puis bitbucket.org est approuvé. Retournez dans le répertoire de votre projet et réessayez npm install
. C'est ce qui était nécessaire pour que la réponse de mscdex fonctionne pour moi.
Il existe d'autres façons d'ajouter des hôtes de confiance, mais cela permet en plus de vérifier que vous pouvez réellement accéder au référentiel privé souhaité.
Sinon, vous pouvez utiliser votre jeton NPM dans votre .npmrc
fichier:
// .npmrc
//registry.npmjs.org/:_authToken=${YOUR_NPM_TOKEN}
Source: https://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules