2016-06-09 30 views
7

Supponiamo di avere una cartella principale e 3 sottocartelle (sottocartellaA, sottocartellaB, sottocartellaC).Come unire più file package.json (npm) in uno con Gulp?

E queste sottocartelle contengono tutte un pacchetto.json con dipendenze e devDependencies. (MainFolder/SubfolderA/package.json)

voglio combinarle in un unico package.json in mainFolder (mainFolder/package.json)

c'è un pacchetto di sorso esistente (o qualsiasi altra soluzione al di fuori Gulp) per combinare e unire le dipendenze di package.json e devDependencies?

(Supponiamo che non ci sarà alcun conflitto di versione. Se c'è una soluzione copre anche quel caso, questo è grande!)

di poter postare un esempio gulpfile.js o spiegare altri modi/strumenti.

Grazie

risposta

3

Si potrebbe provare a utilizzare questo pacchetto nodo per unire file package.json: https://www.npmjs.com/package/package-merge

Edit seguente commento di @dur

Esempio:

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

Qui sono due opzioni:

json-merge

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

npm-deps scansioni sottodirectory per i file package.json nidificati, e fonde tutte le dipendenze insieme in un unico file package.json che viene emesso a stdout.

Un modello base passato tramite input standard viene utilizzato per produrre il file root.json root. Ciò consente a package.json di essere ignorato dai sistemi di controllo della versione, che sono in conflitto con i file generati automaticamente. Gli attributi di base del pacchetto, come nome e versione, possono essere archiviati in un file separato come package-base.json e conservati nel controllo della versione.