包详细信息

merge-packages

zppack3.8kMIT0.1.6

Very intelligently merge package.json files. 2021 UP_TO_DATE VERSION OF THIS TOOL.

package.json, merge package, merge-package, package-merge

自述文件

merge-packages

Very intelligently merge package.json files. 2021 UP_TO_DATE VERSION OF THIS TOOL.

NPM

npm package npm download github license Dependency Status devDependency Status github language top github stars

Features

  • [x] merge dependencies/devDependencies/peerDependencies with semver rules respected
  • [x] merge bin field intelligently
  • [x] combine description field's value
  • [x] retain some fields of the first package.json
  • [x] sort the merged package.json fields
  • [x] provide cli tools

Start

Install

npm install --save merge-packages

# or with yarn
yarn add merge-packages

Usage

CLI

merge-packages [options] [pkgs...]
  • pkgs Argument pkgs is the files or directories to merge. When passing a directory, a minimatch expression package*(.*).json will be used to match files except package.merged.json. If no arguments passed, the result will be like passing a directory ./;

  • options

    • output: The output filename. Default to package.merged.json. If already exists, will use filename package.merged1.json, and the like.
Install globally
npm install --global merge-packages

merge-packages -h

merge-packages package.a.json package.b.json packagesSubDir
NPX
npx merge-packages -h

Node

  • Merge two package.json files
import fs from 'fs';
import mergePackages from 'merge-package';

const pkgStr1 = fs.readFileSync('./a/package.json', 'utf8');
const pkgStr2 = fs.readFileSync('./b/package.json', 'utf8');

// only support string. buffer is not supported
const mergedPkgStr = mergePackages(pkgStr1, pkgStr2);
fs.writeFileSync('./package.json', mergedPkgStr);
  • Merge two package.json objects
import { mergeJson } from 'merge-package';

const pkg1 = {
    name: 'my-package',
    bin: {
        'my-test': 'bin/my-test.js'
    },
    dependencies: {
        'merge-packages': '0.1.0',
        '@babel/core': '^7.13.10'
    }
};

const pkg2 = {
    name: 'my-cli',
    bin: 'bin/cli.js',
    devDependencies: {
        'rimraf': '^3.0.2'
    },
    dependencies: {
        '@babel/core': '^7.13.0'
    }
};

const mergedPkg = mergeJson(pkg1, pkg2);
console.log(mergedPkg);

Contributing

How to contribute to this?

Recently changes

See the change log.

License

MIT

更新日志

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

0.1.6 (2021-08-10)

0.1.5 (2021-04-14)

0.1.4 (2021-04-14)

Features

0.1.3 (2021-04-14)

Features

  • using rollup to do eslint and terser (179f9ef)

0.1.2 (2021-03-22)

Bug Fixes

  • connot be excuted as a node script for the lack of a shebang line at the start of cli file (7af1b86)

0.1.1 (2021-03-22)

Features

  • support cli command call (6e729ec)

Documentations

  • update documents for cli usage (6d25b92)

0.1.0 (2021-03-19)

Features

  • merge package.json files or objects (33b5310)