Der Versuch, Module von Github zu installieren, führt zu:
ENOENT-Fehler in package.json.
Einfach mit Express zu reproduzieren:
npm install https://github.com/visionmedia/express
wirft Fehler.
npm install express
funktioniert.
Warum kann ich nicht von Github installieren?
Hier ist die Konsolenausgabe:
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
Kerl Mograbi
quelle
quelle
"express": "github:visionmedia/express"
zum"dependencies"
Abschnitt hinzufügenpackage.json file
, dann ausführen:npm install
(wie unten erwähnt)Antworten:
Denn
https://github.com/visionmedia/express
ist die URL einer Webseite und kein npm-Modul. Verwenden Sie diesen Geschmack:oder dieses Aroma, wenn Sie SSH benötigen:
quelle
git+https://github.com/visionmedia/express.git
https anstelle von ssh verwenden.package.json
Datei enthalten muss, sonst wird folgende Fehlermeldung angezeigt :Error: ENOENT, open 'tmp.tgz-unpack/package.json'
.#
einen bestimmten Zweig aus der Schale zu verwenden, dh:npm install git+https://github.com/user/repo.git\#branch
Sie können auch tun
npm install visionmedia/express
von Github installierenoder
Es gibt auch Unterstützung für die direkte Installation von Gist, Bitbucket, Gitlab und einer Reihe anderer spezialisierter Formate. Schauen Sie sich die
npm install
Dokumentation für alle an.quelle
github.com
nur für .Wenn git nicht installiert ist, können wir es versuchen
quelle
master
. Wahrscheinlich sicherer, es so zu machen./tarball/
auf den erstenUpdate September 2016
Die Installation von Vanille-https-Github-URLs funktioniert jetzt:
BEARBEITEN 1: Es gibt einige Benutzer, die kommentieren, dass Sie dies nicht für alle Module tun können, da Sie von einem Versionsverwaltungssystem lesen, das möglicherweise ungültigen / nicht kompilierten / fehlerhaften Code enthält. Um es klar zu sagen (obwohl es selbstverständlich sein sollte): Da sich der Code im Repo in einem npm-verwendbaren Zustand befindet , können Sie ihn jetzt ganz einfach direkt von Github aus installieren
EDIT 2: (21-10-2019) Wir erleben jetzt "Peak Typescript / React / Babel", und daher ist die JavaScript-Kompilierung weit verbreitet. Wenn Sie die Kompilierung berücksichtigen müssen, schauen Sie in
prepare
. Dies vorausgeschickt , NPM - Module nicht muß erstellt werden , und es ist ratsam , dass Kompilation anzunehmen , ist nicht der Standard, vor allem für ältere Knotenmodule (und möglicherweise auch für sehr neu, bleeding-edge „ESNext“ -y ist).quelle
dist
Ordner, und die meisten tun dies nicht. Das Problem, mit dem ich verlinkt habe, ist ein npm-Fehler - derprebuild
Schritt wird bei der Installation von GitHub nicht ausgeführt. Versuchen Sie beispielsweise, Node-Influx / Node-Influx zu installieren .dist
Ordner KÖNNEN von GitHub installiert werden, zum Beispiel:npm install https://github.com/fergiemcdowall/search-index-adder
funktioniert einwandfrei./lib
(als ob Sie einen dist-Ordner hätten). Mein Punkt ist, dass es nicht garantiert ist, nur die GitHub-URL eines Repos in package.jons aufzunehmen, um dieses Repo zu installieren. In TypeScript geschriebene Module müssen beispielsweise ihren transpilierten Code in das Repo übertragen. Normalerweise tun sie dies nicht, sondern verwenden ein vorveröffentlichtes Skript, um den .JS-Code in einem dist-Ordner abzulegen, der auf npmjs.com hochgeladen wird.prepare
Skript für bloße "Installationen" aus, einschließlich Git-Deps. Dies bedeutet, dass die obigen Kommentare zu Kompilierungs- und Dist-Ordnern nicht mehr aktuell sind. Jedes Paket, das die Kompilierung ordnungsgemäß für die Ausführung festlegt, funktioniert einwandfreiprepare
als Git-Dep, ohne kompilierte Assets in Git zu übernehmen.Es gibt auch
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
einen anderen Zweig.quelle
Die aktuelle Top-Antwort von Peter Lyons ist bei aktuellen NPM-Versionen nicht relevant. Zum Beispiel ist es jetzt in Ordnung, denselben Befehl zu verwenden, der in dieser Antwort kritisiert wurde.
Wenn Sie weiterhin Probleme haben, liegt möglicherweise ein Problem mit dem von Ihnen verwendeten Paket vor.
quelle
Die Methoden werden jetzt in der Installationsdokumentation von npm sowie in den zahlreichen anderen Antworten hier ziemlich gut behandelt .
Bemerkenswert ist jedoch, dass npm das
prepare
Skript hinzufügt, um das Skript zu ersetzenprepublish
. Dies behebt ein langjähriges Problem, bei dem über git installierte Module dasprepublish
Skript nicht ausgeführt und daher die Erstellungsschritte nicht ausgeführt haben, die beim Veröffentlichen eines Moduls in der npm-Registrierung auftreten. Siehe https://github.com/npm/npm/issues/3055 .Natürlich müssen die Modulautoren ihre package.json aktualisieren, um die neue
prepare
Direktive zu verwenden, damit dies funktioniert.quelle
UPDATE jetzt können Sie tun:
npm install git://github.com/foo/bar.git
oder in
package.json
:quelle
Die allgemeine Form der Syntax ist
was bedeutet für Ihren Fall wird es sein
Aus npmjs docs:
quelle
Installieren Sie es direkt:
Alternativ können Sie hinzufügen ,
"express": "github:visionmedia/express"
um den"dependencies"
Abschnitt derpackage.json
Datei, dann führen:quelle
Sie könnten auch tun
oder
Grundsätzlich:
quelle
Sie können ein Github-Repo
npm install
wie folgt direkt per Befehl installieren :npm install https://github.com/futurechallenger/npm_git_install.git --save
HINWEIS: Im Repo, das mit dem Befehl npm installiert wird:
quelle
dist
Ordner oder Build-Code in Ihrem Repo. Sie müssen nur einprepare
Skript in verwendenpackage.json
.Einfach:
Beispiel:
quelle
Ich habe es versucht
npm install git+https://github.com/visionmedia/express
aber das hat viel zu lange gedauert und ich war mir nicht sicher, ob das funktionieren würde.Was für mich funktioniert hat war -
yarn add git+https://github.com/visionmedia/express
.quelle
Versuchen Sie diesen Befehl
Dieser Befehl hat bei mir funktioniert.
quelle
~/node_modules
, dann brauchen Sie nie sudo.