Essayer d'installer des modules à partir de github a pour résultat:
Erreur ENOENT sur package.json.
Facilement reproduit en utilisant express:
npm install https://github.com/visionmedia/express
génère une erreur.
npm install express
fonctionne.
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
Parce que https://github.com/visionmedia/express
est l'URL d'une page Web et non d'un module npm. Utilisez cette saveur:
git+https://[email protected]/visionmedia/express.git
ou cette saveur si vous avez besoin de SSH:
git+ssh://[email protected]/visionmedia/express.git
Vous pouvez aussi faire npm install visionmedia/express
pour installer depuis Github
ou
npm install visionmedia/express#branch
Il existe également une assistance pour l’installation directe à partir de Gist, Bitbucket, Gitlab et de nombreux autres formats spécialisés. Regardez le npm install
documentation pour tous.
Si git n'est pas installé, nous pouvons essayer
npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master
Il y a aussi npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
pour utiliser une branche différente.
Mise à jour septembre 2016
L'installation à partir de Vanilla https github https fonctionne désormais:
npm install https://github.com/fergiemcdowall/search-index.git
EDIT: il y a quelques utilisateurs qui ont fait remarquer que vous ne pouvez pas le faire pour tous les modules car vous lisez à partir d'un système de contrôle de code source, qui peut contenir du code non valide/non compilé/buggy. Donc, pour être clair (bien que cela doive aller de soi): étant donné que le code dans le référentiel est dans un état utilisable par npm, vous pouvez maintenant très bien installer directement à partir de github
La réponse actuelle de Peter Lyons n’est pas pertinente pour les versions récentes du NMP. Par exemple, utiliser la même commande que celle qui a été critiquée dans cette réponse convient désormais.
$ npm install https://github.com/visionmedia/express
Si vous avez des problèmes persistants, cela pourrait être un problème avec le paquet que vous utilisiez.
Les méthodes sont assez bien couvertes maintenant dans la documentation d'installation de npm ainsi que les nombreuses autres réponses ici.
npm install git+ssh://[email protected]:<githubname>/<githubrepo.git[#<commit-ish>]
npm install git+ssh://[email protected]:<githubname>/<githubrepo.git>[#semver:^x.x]
npm install git+https://[email protected]/<githubname>/<githubrepo.git>
npm install git://github.com/<githubname>/<githubrepo.git>
npm install github:<githubname>/<githubrepo>[#<commit-ish>]
Cependant, un élément notable qui a récemment changé est que npm a ajouté le script prepare
pour remplacer le script prepublish
. problème où les modules installés via git n’exécutaient pas le script prepublish
et ne complétaient donc pas 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 entendu, les auteurs du module devront mettre à jour leur package.json pour pouvoir utiliser la nouvelle directive prepare
afin que cela fonctionne.
UPDATE vous pouvez maintenant faire: npm install git://github.com/foo/bar.git
ou dans package.json
:
"dependencies": {
"bar": "git://github.com/foo/bar.git"
}
La forme générale de la syntaxe est
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
ce qui signifie pour votre cas ce sera
npm install git+ssh://[email protected]/visionmedia/express.git
À partir des documents npmjs:
npm install:
Installe le paquet à partir du fournisseur git hébergé, en le clonant avec git. Pour une URL distante complète git, seule cette URL sera essayée.
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>
| #semver:] est l'un des fichiers suivants: git, git + ssh, git + http, git + https ou git + fichier.
Si # est fourni, il sera utilisé pour cloner exactement ce commit. Si commit-ish a le format #semver :, peut être n'importe quelle plage ou version exacte valide, et npm recherchera toutes les balises ou références correspondant à cette plage dans le référentiel distant, de la même manière que pour une dépendance du registre. Si ni # ni
semver: est spécifié, puis master est utilisé.
Si le référentiel utilise des sous-modules, ceux-ci seront également clonés.
Si le paquet en cours d'installation contient un script de préparation, ses dépendances et devDependencies seront installés et le script de préparation sera exécuté avant que le paquet ne soit empaqueté et installé.
Les variables d'environnement git suivantes sont reconnues par npm et seront ajoutées à l'environnement lors de l'exécution de git:
- GIT_ASKPASS
- GIT_EXEC_PATH
- GIT_PROXY_COMMAND
- GIT_SSH
- GIT_SSH_COMMAND
- GIT_SSL_CAINFO GIT_SSL_NO_VERIFY
Voir la page de manuel de git pour plus de détails.
Exemples:
npm install git+ssh://[email protected]:npm/npm.git#v1.0.27 npm install git+ssh://[email protected]:npm/npm#semver:^5.0 npm install git+https://[email protected]/npm/npm.git npm install git://github.com/npm/npm.git#v1.0.27 GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://[email protected]:npm/npm.git npm install
Installez-le directement:
npm install visionmedia/express
Vous pouvez également ajouter "express": "github:visionmedia/express"
à la section "dependencies"
du fichier package.json
, puis exécuter:
npm install
Tu pourrais aussi faire
npm i alex-cory/fasthacks
ou
npm i github:alex-cory/fasthacks
Fondamentalement:
npm i user_or_org/repo_name
Vous pouvez directement installer un repo github à l'aide de la commande npm install
, comme ceci: npm install https://github.com/futurechallenger/npm_git_install.git --save
NOTE: Dans le dépôt qui sera installé avec la commande npm:
Facile :
npm install *GithubUrl*.git --save
exemple :
npm install https://github.com/visionmedia/express.git --save