Zero-config monorepo cli
Jill uses the workspaces
attribute of your root package.json manifest to build your workspaces dependency tree.
That done it can offer you various utilities:
jill list
prints a list of all your workspaces, with many useful filtersjill run
Run a task expression in a workspace, after having built all its dependencies.jill group
Deprecated in favor of runjill each
Run a task expression in many workspace, after having built all theirs dependencies.jill tree
prints current workspace's local dependency tree
It supports both npm
and yarn
.
Jill will run hook script like npm do, for both npm and yarn. As npm, when you type jill run test
, it will first run
pretest
if it exists, then test
and finally posttest
.
This feature can be disabled using the --no-hooks
option: jill run --no-hooks test
.
Allows to instruct multiple tasks with the given orchestration. The orchestration is given by the following operators:
&&
in sequence||
fallbacks//
in parallel
-
This will run scripts taskA, taskB and taskC in order, one after another.
jill run 'taskA && taskB && taskC'
-
This will run first taskA, if it fails it will run taskB, then taskC in order, until one succeed.
jill run 'taskA || taskB || taskC'
-
This will run scripts taskA, taskB and taskC in parallel.
jill run 'taskA // taskB // taskC'
-
And you can create more complex flows: this will run taskA and taskB in parallel, and then taskC when both tasks are ended
jill run '(taskA // taskB) && taskC'
Just install jill as a dev dependency:
npm install --save-dev @jujulego/jill
Or if you're using yarn
yarn add --dev @jujulego/jill
Almost nothing ;)
To work, jill only needs the workspaces
attribute (see npm workspaces or yarn workspace).
To build a workspaces, jill will try to run it's build
script. If no build
script is found, jill will just warn and continue.