Как слить несколько (npm) файлов package.json в один с Gulp?
Предположим, что у меня есть mainFolder и 3 подпапки (subFolderA, subfolderB, subfolderC).
И эти подпапки все содержат package.json с зависимостями и devDependencies. (Главная папка /subFolderA/package.json)
Я хочу объединить их в один package.json в mainFolder (mainFolder/package.json)
Существует ли существующий пакет gulp (или любое другое решение вне Gulp) для объединения и объединения зависимостей package.json и devDependencies?
(Предположим, что конфликт версий не будет. Если решение также охватывает этот случай, это здорово!)
Можете ли вы разместить пример gulpfile.js или объяснить другие способы/инструменты.
Спасибо
Ответы
Ответ 1
Вы можете попробовать использовать этот пакет узла для объединения файлов 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
Ответ 3
Вы можете попробовать модуль package-json-merge
npm. Чтобы установить его, используйте эту команду -
npm install -g package-json-merge
Затем просто используйте команду ниже, чтобы объединить несколько package.json в один -
package-json-merge package1.json package2.json.... packageN.json > package.json
Ответ 4
Вы можете попробовать плагин webpack с именем webpack-package-manager, автоматически проверить версию и объединить package.json