@loopmode/crosslink
v0.4.0
Published
creates symlinks across workspaces
Downloads
498
Readme
crosslink
A utility for creating symlinks to node packages based on globs.
A symlink is created from each glob result on the left side to each glob result on the right side.
Note that the globs on the left side only match node packages (folders with package.json
)
Supports scoped package names.
Installation
Install it as a global tool or as a dependency in your project.
# global install
npm install -g @loopmode/crosslink
# just in this project
yarn add @loopmode/crosslink --dev
Or don't install at all and use npx
instead (available since [email protected]).
Unfortunately, when using npx
, you must specify the full package name including scope: npx @loopmode/crosslink
.
Usage
Provide crosslink definitions in the format sourceGlob -> targetGlob
in a separate file or your existing package.json
.
Then run crosslink
in the folder.
# local installation
yarn crosslink
# global installation
crosslink
# no installation
npx @loopmode/crosslink
Definitions fille
using .crosslink
text file
One definition per line:
common/packages/* -> client/node_modules
common/packages/* -> server/node_modules
using .crosslink
json file
Have a crosslink
array of definitions:
{
"crosslink": [
"common/packages/* -> client/node_modules",
"common/packages/* -> server/node_modules"
]
}
using package.json
You might just as well use your existing package.json
and define a "crosslink"
array inside of it.
Options
Run with --help
for details.
Usage: crosslink [target]
Options:
-V, --version output the version number
-f, --filename [filename] specify name of definition files (default: "{.crosslink,package.json}")
-p, --propname [propname] specify name of property in JSON definitions (default: "crosslink")
-r, --recursive [recursive] scan for definition files recursively (default: false)
-o, --overwrite [overwrite] overwrite existing target (default: false)
-d, --dry [dry] perform a dry run and report, do not create symlinks (default: false)
--noscope [noscope] do not create intermediary scope folder (default: false)
-h, --help output usage information
Commands:
link [options] <definition>
Arguments:
target The directory in which to operate (default: .)