web-dev-qa-db-fra.com

npm installe les référentiels github privés par dépendance dans package.json

J'essaie d'installer le dépôt privé github par npm qui inclut d'autres dépôts privés de github en tant que dépendance.

J'ai essayé beaucoup de façons et de messages, mais aucun ne fonctionne. Voici ce que je fais:

npm install git+https://github.com/myusername/mygitrepository.git

dans package.json c'est comme:

"dependencies": {
    "repository1name": "git+https://github.com/myusername/repository1.git",
    "repository2name": "git+https://github.com/myusername/repository2.git"
}

Quelle est la bonne façon de le faire?

185
vashishatashu

Ce qui suit a bien fonctionné dans tous les scénarios dont j'avais besoin:

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

Essaye ça:

"dependencies" : {
  "name1" : "git://github.com/user/project.git#commit-ish",
  "name2" : "git://github.com/user/project.git#commit-ish"
}

Vous pouvez également essayer ceci, où visionmedia/express est name/repo:

"dependencies" : {
   "express" : "visionmedia/express"
}

Ou (si le module de package npm existe):

"dependencies" : {
  "name": "*"
}

Tiré de documents NPM

132
leko

Pour ceux d'entre vous qui sont venus ici pour les annuaires publics, des documents npm: https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

URL Git en tant que dépendances

Les urls Git peuvent être de la forme:

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 peut être n’importe quelle balise, sha ou branche pouvant être fournie en tant qu’argument pour git checkout. Le défaut est maître.

62
mummybot

La réponse acceptée fonctionne, mais je n'aime pas trop l'idée de coller des jetons sécurisés dans le package.json

Je l'ai trouvé ailleurs, lancez cette commande unique comme documenté dans la page de manuel git-config .

git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf [email protected]:

GITHUB_TOKEN peut être configuré en tant que variable environ ou être collé directement

puis j'installe des dépôts privés github tels que: npm install user/repo --save


fonctionne également dans Heroku, il suffit de configurer le script git config ... ci-dessus en tant que script heroku-prebuild dans package.json et de configurer GITHUB_TOKEN en tant que variable de configuration Heroku.

50
Michal Moravcik

Comme le soulignent les gens, il existe plusieurs façons de le faire, mais les versions les plus courtes sont les suivantes:

// from master
"depName": "user/repo",

// specific branch
"depName": "user/repo#branch",

// specific commit
"depName": "user/repo#commit",

par exemple.

"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",
}
35
Adrian
"dependencies": {
  "some-package": "github:github_username/some-package"
}

ou juste

"dependencies": {
  "some-package": "github_username/some-package"
}

https://docs.npmjs.com/files/package.json#github-urls

24
Rayron Victor

Puisque Git utilise curl sous le capot, vous pouvez utiliser le fichier ~/.netrc avec les informations d'identification. Pour GitHub, cela ressemblerait à ceci:

_machine github.com
  login <github username>
  password <password OR github access token>
_

Si vous choisissez d'utiliser _access tokens_, il peut être généré à partir de:

Paramètres -> Paramètres du développeur -> Jetons d'accès personnel

Cela devrait également fonctionner si vous utilisez Github Enterprise dans votre propre entreprise. il suffit de mettre l’URL de votre entreprise dans le champ machine.

7
LeOn - Han Li

Voici une version plus détaillée de l'utilisation du jeton Github sans publication dans le fichier package.json.

  1. Créer un jeton d'accès personnel à un github
  2. Réécrire l'URL d'installation dans ~/.gitconfig
git config --global url."https://<TOKEN HERE>:[email protected]/".insteadOf https://[email protected]/
  1. Installez le référentiel privé. Niveau de journal détaillé pour le débogage des erreurs d'accès.
npm install --loglevel verbose --save git+https://[email protected]/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27

Si l'accès à Github échoue, essayez de lancer la commande git ls-remote ... que le npm install will print

2
Martins Balodis

Pour ma référence de référentiel privé, je ne voulais pas inclure de jeton sécurisé, et aucun des autres simples (c'est-à-dire spécifier uniquement dans package.json) fonctionnait. Voici ce qui a fonctionné:

  1. Je suis allé sur GitHub.com
  2. Navigué vers un référentiel privé
  3. Cliqué sur "Cloner ou télécharger" et URL copiée (qui ne correspond pas aux exemples ci-dessus)
  4. Ajouté # commit-sha
  5. Ran npm installer
0
The Coder