it-swarm.com.de

Abhängig von einem Zweig oder Tag mit einer Git-URL in einer package.json?

Angenommen, ich habe ein Node-Modul mit einem Bugfix versehen und möchte meine feste Version in einem Feature-Zweig verwenden, bis der Bugfix zusammengeführt und freigegeben ist.

Wie würde ich meine feste Version im dependencies meines package.json referenzieren?

368
hurrymaplelad

Aus dem npm docs :

git://github.com/<user>/<project>.git#<branch>

git://github.com/<user>/<project>.git#feature\/<branch>

Ab NPM Version 1.1.65 können Sie dies tun:

<user>/<project>#<branch>
525
hurrymaplelad

per @ danthetas Kommentar:

Ab npm 1.1.65 kann die Github-URL für Benutzer/Projekte übersichtlicher sein. npmjs.org/doc/files/package.json.html Sie können den Zweig wie user/project # branch anhängen

Damit

"babel-eslint": "babel/babel-eslint",

Oder für das Tag v1.12.0 auf jscs:

"jscs": "jscs-dev/node-jscs#v1.12.0",

Wenn Sie npm --save verwenden, erhalten Sie den längeren Git

Von 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: // user @ hostname: 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.

GitHub-URLs

Ab Version 1.1.65 können Sie GitHub-URLs nur noch als "foo" bezeichnen: "user/foo-project". Genau wie bei Git-URLs kann ein Suffix für das Festschreiben eingefügt werden. Zum Beispiel:

{"name": "foo",
"Version": "0.0.0",
"dependencies": {"express": "visionmedia/express", "mocha": "visionmedia/mocha # 4727d357ea"}}

130
justingordon

Wenn Sie den Zweig devel oder feature verwenden möchten oder ein bestimmtes Paket nicht in der NPM-Registrierung veröffentlicht haben oder dies nicht können, weil es sich um ein privates Modul handelt, können Sie auf einen git:// verweisen. URI anstelle einer Versionsnummer in Ihrem package.json:

"dependencies": {
   "public": "git://github.com/user/repo.git#ref",
   "private": "git+ssh://[email protected]:user/repo.git#ref"
}

Der Teil #ref ist optional und kann eine Verzweigung (wie master), ein Tag (wie 0.0.1) oder eine teilweise oder vollständige Festschreibungs-ID sein.

39
Fizer Khan

In der neuesten Version von NPM können Sie einfach Folgendes tun:

npm install gitAuthor/gitRepo#tag

Wenn das Repo ein gültiges NPM-Paket ist, wird es in package.json automatisch mit folgenden Aliasnamen versehen:

{ "NPMPackageName": "gitAuthor/gitRepo#tag" }

Wenn Sie dies zu @justingordons Antwort hinzufügen könnten, ist jetzt kein manuelles Aliasing mehr erforderlich!

25
vortex