如何使用Gulp将多个(npm)package.json文件合并为一个?

19
假设我有一个主文件夹和3个子文件夹(subFolderA、subfolderB、subfolderC)。

这些子文件夹都包含带有依赖项和开发依赖项的package.json(mainFolder/subFolderA/package.json)。

我想将它们合并成一个单独的package.json文件,放在mainFolder中(mainFolder/package.json)。

是否有现有的gulp软件包(或任何其他解决方案Gulp之外),来合并和合并package.json的依赖项和开发依赖项?

(假设没有版本冲突。如果有一个解决方案也涵盖了这种情况,那就太好了!)

你能发一个gulpfile.js的例子或解释其他方法/工具吗?

谢谢

3个回答

19
您可以尝试使用package-json-merge npm 模块。要安装它,请使用以下命令 - npm install -g package-json-merge 然后只需使用下面的命令将多个 package.json 合并成一个 - package-json-merge package1.json package2.json .... packageN.json > package.json

1
我喜欢这个解决方案,我可以在Bash脚本中运行。 - Dee

10
您可以尝试使用这个 Node 包来合并 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));

2

这里有两个选项:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接