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

问题描述 投票:0回答:4

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

并且这些子文件夹都包含一个带有依赖项和 devDependency 的 package.json。 (mainFolder/subFolderA/package.json)

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

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

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

您可以发布一个示例 gulpfile.js 或解释其他方法/工具吗?

谢谢你

node.js npm gulp package.json
4个回答
20
投票

您可以尝试

package-json-merge
npm 模块。要安装它,请使用此命令 -

npm install -g package-json-merge

然后只需使用以下命令将多个 package.json 合并为一个 -

package-json-merge package1.json package2.json .... packageN.json > package.json


10
投票

您可以尝试使用此节点包来合并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 合并

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

npm-deps 扫描子目录中的嵌套 package.json 文件,并将所有依赖项合并到输出到 stdout 的单个 package.json 文件中。

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


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


0
投票

C:\Users\Desktop\新文件夹 xample-repo> 转到 floder 并在 cmd 下运行

您可以尝试 package-json-merge npm 模块。要安装它,请使用此命令 -

npm install -g package-json-merge

然后只需使用以下命令将多个 package.json 合并为一个 -

npx package-json-merge package1.json 的位置 package2.json 的位置 > packageN.json

例如: npx package-json-merge lib\shared\package.json apps pp2\package.json > packageN.json

© www.soinside.com 2019 - 2025. All rights reserved.