wake-up-neo.net

npm installiert private Github-Repositorys in Abhängigkeit von package.json

Ich versuche, Github Private Repository von Npm zu installieren, das andere private Github-Repositorys als Abhängigkeit enthält.

Habe viele Wege und Beiträge ausprobiert, aber keiner funktioniert. Folgendes mache ich:

npm install git+https://github.com/myusername/mygitrepository.git

in package.json ist wie folgt:

"dependencies": {
    "repository1name": "git+https://github.com/myusername/repository1.git",
    "repository2name": "git+https://github.com/myusername/repository2.git"
}

Was ist der richtige Weg, um es zu tun?

185
vashishatashu

Das Folgende funktionierte in allen von mir benötigten Szenarien einwandfrei:

"dependencies": {
"GitRepo": "git+https://<token-from-github>:[email protected]/<user>/<GitRepo>.git"
}
77
vashishatashu

Versuche dies:

"dependencies" : {
  "name1" : "git://github.com/user/project.git#commit-ish",
  "name2" : "git://github.com/user/project.git#commit-ish"
}

Sie können dies auch versuchen, wobei visionmedia/express name/repo ist:

"dependencies" : {
   "express" : "visionmedia/express"
}

Oder (falls das Paket npm existiert):

"dependencies" : {
  "name": "*"
}

Entnommen aus NPM-Dokumente

132
leko

Für diejenigen von Ihnen, die aus öffentlichen Verzeichnissen hierher gekommen sind, aus den npm-Dokumenten: https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Git-URLs als Abhängigkeiten

Git-URLs können folgende Form haben:

git://github.com/user/project.git#commit-ish
git+ssh://[email protected]:project.git#commit-ish
git+ssh://[email protected]/project.git#commit-ish
git+http://[email protected]/project/blah.git#commit-ish
git+https://[email protected]/project/blah.git#commit-ish

Das Commit-ish kann ein beliebiges Tag, sha oder ein Zweig sein, der als Argument für git checkout angegeben werden kann. Der Standardwert ist master.

62
mummybot

Die akzeptierte Antwort funktioniert, aber ich mag die Idee, sichere Token in den package.json - Code einzufügen, nicht sehr.

Ich habe es woanders gefunden, führe einfach diesen einmaligen Befehl aus wie in der git-config-Manpage dokumentiert .

git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf [email protected]:

GITHUB_TOKEN Kann als Umgebungsvariable eingerichtet oder direkt eingefügt werden

und dann installiere ich private Github-Repos wie: npm install user/repo --save


funktioniert auch in Heroku. Richten Sie einfach den obigen Befehl git config ... als heroku-prebuild - Skript in package.json und GITHUB_TOKEN als Heroku-Konfigurationsvariable ein.

50
Michal Moravcik

Es gibt mehrere Möglichkeiten, dies zu tun, wie die Leute betonen, aber die kürzesten Versionen sind:

// from master
"depName": "user/repo",

// specific branch
"depName": "user/repo#branch",

// specific commit
"depName": "user/repo#commit",

z.B.

"dependencies" : {
  "hexo-renderer-marked": "amejiarosario/hexo-renderer-marked#patch-1",
  "hexo-renderer-marked": "amejiarosario/hexo-renderer-marked#2249507",
  "hexo-renderer-marked": "amejiarosario/hexo-renderer-marked",
}
35
Adrian
"dependencies": {
  "some-package": "github:github_username/some-package"
}

oder nur

"dependencies": {
  "some-package": "github_username/some-package"
}

https://docs.npmjs.com/files/package.json#github-urls

24
Rayron Victor

Da Git curl unter der Haube verwendet, können Sie die Datei ~/.netrc mit den Anmeldeinformationen verwenden. Für GitHub würde es ungefähr so ​​aussehen:

machine github.com
  login <github username>
  password <password OR github access token>

Wenn Sie access tokens Verwenden, kann dies generiert werden aus:

Einstellungen -> Entwicklereinstellungen -> Persönliche Zugriffstoken

Dies sollte auch funktionieren, wenn Sie Github Enterprise in Ihrem eigenen Unternehmen verwenden. Geben Sie einfach Ihre Unternehmens-Github-URL in das Feld machine ein.

7
LeOn - Han Li

Hier finden Sie eine detailliertere Version der Verwendung des Github-Tokens ohne Veröffentlichung in der Datei package.json.

  1. Erstellen Sie ein persönliches Github-Zugriffstoken
  2. Richten Sie die URL in ~/.gitconfig neu ein
git config --global url."https://<TOKEN HERE>:[email protected]/".insteadOf https://[email protected]/
  1. Installieren Sie das private Repository. Ausführliche Protokollebene zum Debuggen von Zugriffsfehlern.
npm install --loglevel verbose --save git+https://[email protected]/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27

Falls der Zugriff auf Github fehlschlägt, versuchen Sie, den Befehl git ls-remote ... Auszuführen, den npm install will print

2
Martins Balodis

Als Referenz für mein privates Repository wollte ich kein sicheres Token einschließen, und keines der anderen einfachen (d. H. Nur in package.json angeben) funktionierte. Folgendes hat funktioniert:

  1. Ging zu GitHub.com
  2. Navigierte zu Private Repository
  3. Klicken Sie auf "Klonen oder Herunterladen" und auf die kopierte URL (die nicht den obigen Beispielen entspricht).
  4. # Commit-sha hinzugefügt
  5. Ran npm install
0
The Coder