2016-06-09 218 views
7

让我们假设我有一个mainFolder和3个子文件夹(subFolderA,subfolderB,subfolderC)。如何将多个(npm)package.json文件合并为一个Gulp?

而这些子文件夹都包含一个package.json,它具有依赖和devDependencies。 (mainFolder/subFolderA /的package.json)

我想将它们组合成在mainFolder单个的package.json(mainFolder /的package.json)

是否有一个现有的大口包(或咕嘟咕嘟以外的任何其它溶液)来合并和合并package.json依赖和devDependencies?

(假设不会有版本冲突,如果有一个解决方案也涵盖这种情况下,那太棒了!)

您可以发布一个例子gulpfile.js或说明等方式/工具。

谢谢

回答

3

你可以尝试使用这个节点包合并的package.json文件: https://www.npmjs.com/package/package-merge

编辑下面的注释通过@dur

例子:

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

这里有两种选择:

json-merge

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

npm-deps扫描嵌套的package.json文件的子目录,并在输出到标准输出单一的package.json文件中的所有依赖关系融合在一起。

通过标准输入传递的基本模板用于生成根package.json文件。这允许版本控制系统忽略package.json,这与自动生成的文件相冲突。基本包的属性,如名称和版本,可以存储在一个单独的文件中,如package-base.json,并保存在版本控制中。

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