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?
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"
}
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
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
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.
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.
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",
}
"dependencies": {
"some-package": "github:github_username/some-package"
}
ou juste
"dependencies": {
"some-package": "github_username/some-package"
}
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
.
Voici une version plus détaillée de l'utilisation du jeton Github sans publication dans le fichier 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
Si l'accès à Github échoue, essayez de lancer la commande git ls-remote ...
que le npm install will print
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é: