假设我有一个 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 或解释其他方法/工具吗?
谢谢你
package-json-merge
npm 模块。要安装它,请使用此命令 -
npm install -g package-json-merge
然后只需使用以下命令将多个 package.json 合并为一个 -
package-json-merge package1.json package2.json .... packageN.json > package.json
您可以尝试使用此节点包来合并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));
这里有两个选项:
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
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