【问题标题】:How to merge multiple (npm) package.json files into one with Gulp?如何使用 Gulp 将多个 (npm) package.json 文件合并为一个?
【发布时间】:2016-10-10 14:51:02
【问题描述】:

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

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

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

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

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

您能否发布一个示例 gulpfile.js 或解释其他方式/工具。

谢谢

【问题讨论】:

  • @LokeshJain 的回答很好

标签: node.js npm gulp package.json


【解决方案1】:

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

npm install -g package-json-merge

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

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

【讨论】:

  • 我喜欢这个解决方案,我可以在 bash 脚本中运行
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    这里有两个选项:

    json-merge

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 2016-09-23
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多