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 listprints a list of all your workspaces, with many useful filtersjill runRun a task expression in a workspace, after having built all its dependencies.jill groupDeprecated in favor of runjill eachRun a task expression in many workspace, after having built all theirs dependencies.jill treeprints 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/jillOr if you're using yarn
yarn add --dev @jujulego/jillAlmost 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.