Question Comment installer un paquet npm directement depuis GitHub?


Essayer d'installer des modules à partir de github donne:

Erreur ENOENT sur package.json.

Facilement reproduit en utilisant express:

npm install https://github.com/visionmedia/express renvoie une erreur

npm install express travaux.

Pourquoi ne puis-je pas installer à partir de github?

Voici la sortie de la console:

npm http GET https://github.com/visionmedia/express.git
npm http 200 https://github.com/visionmedia/express.git
npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz
npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log
npm ERR! not ok code 0

594
2017-07-07 05:55


origine


Réponses:


Car https://github.com/visionmedia/express est l'URL d'une page Web et non un module NPM. Utilisez cette saveur:

git+https://git@github.com/visionmedia/express.git

ou cette saveur si vous avez besoin de SSH:

git+ssh://git@github.com/visionmedia/express.git

799
2017-07-07 06:19



Vous pouvez aussi faire npm install visionmedia/express installer depuis Github

ou

npm install visionmedia/express#branch

Il existe également un support pour l'installation directement à partir d'un Gist, Bitbucket, Gitlab, et un certain nombre d'autres formats spécialisés. Regarde le npm install  Documentation pour eux tous.


467
2018-02-20 20:15



Si git n'est pas installé, nous pouvons essayer

npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master

99
2017-09-07 10:15



Il y a aussi npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH} utiliser une branche différente.


42
2018-05-18 09:38



UPDATE sept 2016

L'installation à partir des URL https github de vanilla semble maintenant fonctionner:

npm install https://github.com/fergiemcdowall/search-index.git

MODIFIER: Il y a quelques utilisateurs qui commentent que vous ne pouvez pas faire cela pour tous les modules parce que vous lisez d'un système de contrôle de source, qui peut contenir du code invalide / non compilé / buggé. Donc, pour être clair (bien que cela devrait aller de soi): étant donné que le code dans le repo est dans un état npm-utilisable, vous pouvez maintenant installer tout à fait heureusement directement à partir de github


31
2017-09-14 12:07



La meilleure réponse actuelle de Peter Lyons n'est pas pertinente avec les versions récentes de NPM. Par exemple, utiliser la même commande qui a été critiquée dans cette réponse est maintenant très bien.

$ npm install https://github.com/visionmedia/express

Si vous avez des problèmes persistants, cela peut poser un problème avec le package que vous utilisez.


29
2018-05-02 16:08



Les méthodes sont assez bien couvertes maintenant Documentation d'installation de npm ainsi que les nombreuses autres réponses ici.

npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>]
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^x.x]
npm install git+https://git@github.com/<githubname>/<githubrepo.git>
npm install git://github.com/<githubname>/<githubrepo.git>
npm install github:<githubname>/<githubrepo>[#<commit-ish>]

Cependant, quelque chose de notable qui a changé récemment est npm ajoutant le prepare script pour remplacer le prepublish scénario.  Cela résout un problème de longue date où les modules installés via git ne fonctionnaient pas prepublish script et n'a donc pas terminé les étapes de construction qui se produisent lorsqu'un module est publié dans le registre npm. Voir https://github.com/npm/npm/issues/3055.

Bien sûr, les auteurs du module devront mettre à jour leur paquetage.json pour utiliser le nouveau prepare directive pour que cela commence à fonctionner.


12
2017-07-18 02:47