@userfrosting/merge-package-dependencies

Merge NPM or Bower package dependencies into one package, with semvar rules respected.

Showing:

Popularity

Downloads/wk

318

GitHub Stars

8

Maintenance

Last Commit

1d ago

Contributors

6

Package

Dependencies

6

License

MIT

Type Definitions

Built-In

Tree-Shakeable

No?

Categories

Readme

merge-package-dependencies

BranchStatus
masterContinuous Integration codecov

A simple tool that can merge the dependency and devDependency dependency types for npm/yarn package.jsons or bower bower.jsons into a single package.json or bower.json object (and optionally file). To properly support frontend scenarios, this tool also merges resolutions, and ignores unnecessary field recommendations for private npm/yarn packages. Perfect for projects like UserFrosting where plugins (Sprinkles) provide virtually all functionality.

NOTE: While non-semver values are supported, they will act as an override and emit a warning (even if logging is disabled). This override behavior only applies to 'incoming' values. This behavior does not match npm, yarn or bower.

NOTE: This is currently an offline tool, and as such conflicts further down the dependency chain are not evaluated. There is however a duplicate dependency detection tool for yarn to allow the creation of workarounds in the meantime (see docs/api

NOTE: Any dependencies with a path specified as the version will not be adjusted, even if an output location is specified.

Install

npm i -D  @userfrosting/merge-package-dependencies

Usage

IMPORTANT
This is an ES module package targeting NodeJS ^12.17.0 || >=14.0.0, refer to the NodeJS ESM docs regarding how to correctly import. ESM loaders like @babel/loader or esm likely won't work as expected.

To merge multiple package.json's into a single object, and save to a specified location...

import * as mergePackages from "@userfrosting/merge-package-dependencies";

let result = mergePackages.yarn(
    {
        name: "pkg",
        version: "1.7.2",
    },
    [
        "../app/sprinkles/core/",
        "../app/sprinkles/account/",
        "../app/sprinkles/admin/"
    ],
    "../app/assets/"
);

API

See docs/api.

License

MIT

Contributing

See CONTRIBUTING.md.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial