Essayer d'installer des modules à partir de github entraîne:
Erreur ENOENT sur package.json.
Reproduit facilement en utilisant express:
npm install https://github.com/visionmedia/express
jette 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! <[email protected]>
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
github
npm
npm-install
node-modules
guy mograbi
la source
la source
"express": "github:visionmedia/express"
à la"dependencies"
section depackage.json file
, puis exécuter:npm install
(comme mentionné ci-dessous)Réponses:
Parce que
https://github.com/visionmedia/express
c'est l'URL d'une page Web et non un module npm. Utilisez cette saveur:ou cette saveur si vous avez besoin de SSH:
la source
git+https://github.com/visionmedia/express.git
pour utiliser https plutôt que ssh.package.json
fichier ou bien vous obtiendrez cette erreur:Error: ENOENT, open 'tmp.tgz-unpack/package.json'
.#
utiliser une branche spécifique de la coquille, à savoir:npm install git+https://github.com/user/repo.git\#branch
Vous pouvez également faire
npm install visionmedia/express
pour installer à partir de Githubou
Il existe également un support pour l'installation directement à partir d'un Gist, Bitbucket, Gitlab et d'un certain nombre d'autres formats spécialisés. Regardez la
npm install
documentation pour tous.la source
github.com
que pour .Si git n'est pas installé, nous pouvons essayer
la source
master
. Probablement plus sûr de le faire de cette façon./tarball/
premièreMise à jour de septembre 2016
L'installation à partir d'URL github https vanilla fonctionne maintenant:
EDIT 1: il y a quelques utilisateurs qui disent que vous ne pouvez pas faire cela pour tous les modules parce que vous lisez à partir d'un système de contrôle de source, qui peut très bien contenir du code invalide / non compilé / bogué. Donc, pour être clair (même si cela va sans dire): étant donné que le code du référentiel est dans un état utilisable par npm , vous pouvez maintenant très facilement installer directement depuis github
EDIT 2: (21-10-2019) Nous vivons maintenant à travers "Peak Typescript / React / Babel", et donc la compilation JavaScript est devenue assez courante. Si vous devez prendre en compte la compilation, regardez
prepare
. Cela dit, les modules NPM n'ont pas besoin d'être compilés , et il est sage de supposer que la compilation n'est pas la valeur par défaut, en particulier pour les modules de nœuds plus anciens (et peut-être aussi pour les très nouveaux "ESNext" -y).la source
dist
dossier, et la plupart ne le font pas. Le problèmeprebuild
auquel j'ai lié est un bogue npm - l' étape n'est pas exécutée lors de l'installation à partir de GitHub. Par exemple, essayez d'installer node-influx / node-influx .dist
dossiers PEUVENT être installés à partir de GitHub, par exemple:npm install https://github.com/fergiemcdowall/search-index-adder
fonctionne parfaitement./lib
(comme si vous aviez un dossier dist). Mon point est que l'inclusion de l'URL GitHub d'un dépôt dans package.jons n'est pas garantie de fonctionner pour l'installation de ce dépôt. Les modules écrits en TypeScript, par exemple, doivent pousser leur code transpilé dans le référentiel. Ils ne le font généralement pas, mais utilisent plutôt un script de prépublication pour vider le code .JS dans un dossier dist, qui est téléchargé sur npmjs.com.prepare
script pour les "installations" nues, qui incluent git deps. Ce qui signifie que les commentaires ci-dessus concernant la compilation et les dossiers dist sont obsolètes. Tout paquet qui définit correctement sa compilation pour fonctionnerprepare
fonctionnera très bien en tant que git dep sans engager aucun actif compilé dans git.Il faut aussi
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
utiliser une branche différente.la source
La meilleure réponse actuelle de Peter Lyons n'est pas pertinente avec les versions récentes du NPM. Par exemple, utiliser la même commande qui a été critiquée dans cette réponse est maintenant très bien.
Si vous avez des problèmes persistants, cela peut être un problème avec le package que vous utilisez.
la source
Les méthodes sont assez bien couvertes maintenant dans la documentation d'installation de npm ainsi que les nombreuses autres réponses ici.
Cependant, quelque chose de notable qui a changé récemment est npm ajoutant le
prepare
script pour remplacer leprepublish
script. Cela corrige un problème de longue date où les modules installés via git n'exécutaient pas leprepublish
script et ne terminaient donc pas les étapes de génération 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 package.json pour utiliser la nouvelle
prepare
directive pour que cela commence à fonctionner.la source
MISE À JOUR maintenant vous pouvez faire:
npm install git://github.com/foo/bar.git
ou en
package.json
:la source
La forme générale de la syntaxe est
ce qui signifie que pour votre cas, ce sera
Depuis les documents npmjs:
la source
Installez-le directement:
Alternativement, vous pouvez ajouter
"express": "github:visionmedia/express"
à la"dependencies"
section dupackage.json
fichier, puis exécuter:la source
Vous pourriez aussi faire
ou
Fondamentalement:
la source
Vous pouvez installer directement un dépôt github par
npm install
commande, comme ceci:npm install https://github.com/futurechallenger/npm_git_install.git --save
REMARQUE: Dans le dépôt qui sera installé par la commande npm:
la source
dist
dossier ou d'un code de build dans votre référentiel. Il vous suffit d'utiliser unprepare
script danspackage.json
.Facile :
exemple :
la source
J'ai essayé
npm install git+https://github.com/visionmedia/express
mais cela a pris beaucoup trop de temps et je n'étais pas sûr que cela fonctionnerait.Ce qui a fonctionné pour moi, c'est -
yarn add git+https://github.com/visionmedia/express
.la source
Essayez cette commande
cette commande a fonctionné pour moi.
la source
~/node_modules
, alors vous n'aurez jamais besoin de sudo.