Home

Awesome

npm-link-shared

Version Build Status Downloads Dependencies

Installs a set of local node modules into a target folder using npm link. Links all dependencies of the local modules if they are listed in the source folder.

Blog post explaining this module.

Installation

npm install npm-link-shared -g

Changelog

v0.5.2 (2017-09-07) - Updated dependencies. Added package-lock.json.

v0.5.1 (2017-05-19) - Support for --include-peer which links peer dependencies if they are defined.

v0.5.0 (2017-03-29) - BREAKING CHANGES: The lib/api function's arguments have been revamped. The previously undocumented argument --includeDev is now --include-dev to be consistent with other arguments. We now print a warning and exit gracefully if either the shared or target directory do not exist.

v0.4.0 (2017-03-13) - Support for changing executable to yarn with --yarn. Use at your own risk! yarn link is not yet functionally equivalent to npm link.

v0.3.3 (2016-07-01) - Support for npm link options, removed hardcoded usage of --production.

v0.3.0 (2016-03-25) - Support for @scope packages. For example, @scope/my-package.

v0.2.1 (2016-01-12) - Thanks to @barroudjo, module folder names are now de-coupled from the names in the package.json. So any name can be used as a folder name.

v0.2.0 (2015-10-30) - Links using --production flag so that devDependencies should not be installed anymore. Tests added.

v0.1.6 (2015-04-20) - Removed unneeded npm dependency. Added a possibility to define which modules to install.

Usage

  npm-link-shared <shared-modules-dir> <target-installation-dir> [<module1..> [, <module2..>]] [--yarn] [--include-dev] [--include-peer] [--<npm-link-option> [--<npm-link-option>]]

For example:

  npm-link-shared /home/user/internal_modules/ /home/user/my-project

This links all modules located in the internal_modules directory to the my-project dir.

Define specific modules to install

  npm-link-shared /home/user/internal_modules/ /home/user/my-project my-module1 my-module2

This links modules my-module1 and my-module2 located in the internal_modules directory to the my-project dir. Only these two modules are installed but their dependencies are resolved against the entire internal_modules directory.

Define options passed to npm link

  npm-link-shared /home/user/internal_modules/ /home/user/my-project --production

This prevents installation of devDependencies of shared modules by passing the production option to npm link (npm link --production).

Use yarn instead

NOTE: yarn link is currently functionally different from npm link, and should not be considered stable. Use at your own risk until the yarn project has stabilized.

  npm-link-shared /home/user/internal_modules/ /home/user/my-project --yarn

This works in conjunction with all other options.

Also link devDependencies and/or peerDependencies

devDependencies:

  npm-link-shared /home/user/internal_modules/ /home/user/my-project --include-dev

peerDependencies:

  npm-link-shared /home/user/internal_modules/ /home/user/my-project --include-peer

Ordinarily, only packages found under the dependencies key in a project's package.json are linked. With this option, devDependencies and/or peerDependencies are also linked.

Developing

To run tests successfully, you must have both npm and yarn in your $PATH.

LICENSE

MIT