Skip to content

Configurable deep merge strategy for any kind of object or configuration

License

Notifications You must be signed in to change notification settings

vladcosorg/merge-strategy

Repository files navigation

linkertinker
merge-strategy

Configurable deep merge strategy for any kind of object or configuration

Installation

npm install merge-strategy

Usage

$ ncc <cmd> <opts>

Eg:

$ ncc build input.js -o dist

If building an .mjs or .js module inside a "type": "module" package boundary, an ES module output will be created automatically.

Outputs the Node.js compact build of input.js into dist/index.js.

Note: If the input file is using a .cjs extension, then so will the corresponding output file. This is useful for packages that want to use .js files as modules in native Node.js using a "type": "module" in the package.json file.

Commands:

  build <input-file> [opts]
  run <input-file> [opts]
  cache clean|dir|size
  help
  version

Options:

  -o, --out [dir]          Output directory for build (defaults to dist)
  -m, --minify             Minify output
  -C, --no-cache           Skip build cache population
  -s, --source-map         Generate source map
  -a, --asset-builds       Build nested JS assets recursively, useful for
                           when code is loaded as an asset eg for workers.
  --no-source-map-register Skip source-map-register source map support
  -e, --external [mod]     Skip bundling 'mod'. Can be used many times
  -q, --quiet              Disable build summaries / non-error outputs
  -w, --watch              Start a watched build
  -t, --transpile-only     Use transpileOnly option with the ts-loader
  --v8-cache               Emit a build using the v8 compile cache
  --license [file]         Adds a file containing licensing information to the output
  --stats-out [file]       Emit webpack stats as json to the specified output file
  --target [es]            ECMAScript target to use for output (default: es2015)
                           Learn more: https://webpack.js.org/configuration/target
  -d, --debug              Show debug logs

Execution Testing

For testing and debugging, a file can be built into a temporary directory and executed with full source maps support with the command:

$ ncc run input.js

Motivation

This is yet another replacement for the npm link, which has tons of issues and works only for trivial cases. This is also a replacement for other replacement packages which are either not maintained or a very clunky to use.

oclif Version Downloads/week License

Features

  • Survives npm install
  • All production dependencies and peer dependencies are installed along the main package (unlike npm link)
  • Automatic reinstall of the changed dependencies
  • No transitive dependencies
  • Works with CRA, Vite, etc. hot reloading / hot module replacement (HMR)
  • Fully automatic syncronisation between your project and linked dependency
  • No 3rd-party config options in your package.json
  • Out of the box support for TypeScript transpiler and other watchers
  • Bidirectional sync

Usage

To Do

  • Support other than NPM package managers

Recipes

#Comparison table

https://docs.npmjs.com/cli/v9/commands/npm-link https://github.com/wclr/yalc https://github.com/privatenumber/link https://hirok.io/posts/avoid-npm-link

About

Configurable deep merge strategy for any kind of object or configuration

Resources

License

Stars

Watchers

Forks

Packages

No packages published