2016-06-09 12 views
7

Nehmen wir an, ich habe einen MainFolder und 3 Unterordner (subFolderA, subfolderB, subfolderC).Wie füge ich mehrere (npm) package.json Dateien mit Gulp zusammen?

Und diese Unterordner enthalten alle eine package.json mit Abhängigkeiten und devDependencies. (Hauptordner/subFolderA/package.json)

Ich möchte, dass sie in einem einzigen package.json kombinieren in Hauptordner (Hauptordner/package.json)

Gibt es eine bestehende schluck-Paket (oder jede andere Lösung außerhalb Gulp) um package.json-Abhängigkeiten und devDependencies zu kombinieren und zusammenzuführen?

(Nehmen wir an, es wird keine Versionskonflikt sein. Wenn es eine Lösung ist auch, dass die Hülle, das ist großartig!)

Können Sie ein Beispiel gulpfile.js Post oder andere Weisen/Tools erklären.

Danke

Antwort

3

Sie könnten versuchen, diesen Knoten Paket mit Dateien zu verschmelzen package.json: https://www.npmjs.com/package/package-merge

bearbeiten folgenden Kommentar von @dur

Beispiel:

var merge = require('package-merge') 
var fs = require('fs'); 

var dst = fs.readFileSync('package.a.json'); 
var src = fs.readFileSync('package.b.json'); 
fs.writeFile("/tmp/package.merged.json", merge(dst,src)); 
1

Hier Sie haben zwei Möglichkeiten:

json-merge

json-merge package.json --parse="dependencies" package2.json --parse="devDependencies"

npm-deps Scans Verzeichnisse für verschachtelte package.json-Dateien und alle zusammen Abhängigkeiten in einer einzigen Datei package.json übergeht, die auf die Standardausgabe ausgegeben wird.

Eine Basisvorlage, die die Standardeingabe durchläuft, wird verwendet, um die Datei root package.json zu erstellen. Dadurch kann package.json von Versionskontrollsystemen ignoriert werden, die mit automatisch generierten Dateien in Konflikt stehen. Basispaketattribute, wie Name und Version, können in einer separaten Datei wie package-base.json gespeichert und in der Versionskontrolle beibehalten werden.

$ cd my_cool_project $ npm-deps < package-base.json > package.json

Verwandte Themen