1199 Stimmen

Wie installiert man ein npm-Paket direkt von GitHub

Beim Versuch, Module von GitHub zu installieren, tritt dieser Fehler auf:

ENOENT-Fehler auf package.json.

Einfach reproduzierbar mit express:

npm install https://github.com/visionmedia/express wirft einen 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!     
npm ERR! or email it to:
npm ERR!     

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

61voto

zakelfassi Punkte 2876

Es gibt auch npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}, um einen anderen Zweig zu verwenden.

49voto

Colin D Punkte 2271

Die aktuelle Top-Antwort von Peter Lyons ist nicht relevant für aktuelle NPM-Versionen. Zum Beispiel ist es jetzt in Ordnung, denselben Befehl zu verwenden, der in dieser Antwort kritisiert wurde.

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

Wenn Sie weiterhin Probleme haben, könnte es ein Problem mit dem Paket sein, das Sie verwenden.

29voto

ishandutta2007 Punkte 14498

Die allgemeine Form der Syntax lautet

://[[:]@][:][:][/][# | #semver:]

das bedeutet in Ihrem Fall wird es

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

Aus npmjs-Dokumenten:

npm install :

Installiert das Paket von einem gehosteten Git-Anbieter und klonen es mit git. Für eine vollständige Git-URL wird nur diese URL versucht.

://[[:]@][:][:][/][#

| #semver:] gehört zu git, git+ssh, git+http, git+https oder git+file.

Wenn # bereitgestellt wird, wird genau dieser Commit geklont. Wenn das Format des commit-ish #semver: hat, kann es sich um einen gültigen Semver-Bereich oder eine genaue Version handeln, und npm wird nach Tags oder Refs suchen, die diesem Bereich im Remote-Repository entsprechen, ebenso wie für eine Registrierungsabhängigkeit. Wenn weder # noch

semver: angegeben ist, wird master verwendet.

Wenn das Repository Untermodule verwendet, werden auch diese Untermodule geklont.

Wenn das zu installierende Paket ein Vorbereitungsskript enthält, werden seine Abhängigkeiten und devDependencies installiert und das Vorbereitungsskript wird ausgeführt, bevor das Paket verpackt und installiert wird.

Die folgenden git-Umgebungsvariablen werden von npm erkannt und werden der Umgebung hinzugefügt, wenn git ausgeführt wird:

  • GIT_ASKPASS
  • GIT_EXEC_PATH
  • GIT_PROXY_COMMAND
  • GIT_SSH
  • GIT_SSH_COMMAND
  • GIT_SSL_CAINFO GIT_SSL_NO_VERIFY

Details finden Sie in der git man page.

Beispiele:

npm install git+ssh://git@github.com:npm/npm.git#v1.0.27
npm install git+ssh://git@github.com:npm/npm#semver:^5.0
npm install git+https://isaacs@github.com/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://git@github.com:npm/npm.git 
npm install

28voto

Omar Omeiri Punkte 769

Dies funktioniert für mich und es ist weniger Tippen.

npm i github:/

package.json

{
    "dependencies": {
        "name": "github:/"
    }
}

26voto

Sagiv Ofek Punkte 24832

Sie können:

npm install git://github.com/foo/bar.git

Oder in package.json:

"dependencies": {
  "bar": "git://github.com/foo/bar.git"
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X