@qoopido/lerna.filter-packages
TypeScript icon, indicating that this package has built-in type declarations

1.15.3-alpha.0 • Public • Published

License: MIT npm npm

Lerna-Lite filtering utils for optional commands (Exec/List/Run/Watch)

@qoopido/lerna.filter-packages

Shared common code for the following optional commands:

Installation

Follow the instruction provided in the main README page.


Options for lerna sub-commands that need filtering

Options

--scope <glob>

Include only packages with names matching the given glob.

$ lerna exec --scope my-component -- ls -la
$ lerna run --scope "toolbar-*" test
$ lerna run --scope package-1 --scope "*-2" lint

Note: For certain globs, it may be necessary to quote the option argument to avoid premature shell expansion.

Running with npx

When running lerna with npx, it is necessary to use an explicit "=" when passing glob arguments. This is to prevent npx from prematurely expanding the arguments.

For example:

$ npx lerna run --scope="toolbar-*" test
$ npx lerna run --scope="package-{1,2,5}" test

--ignore <glob>

Exclude packages with names matching the given glob.

$ lerna exec --ignore "package-{1,2,5}"  -- ls -la
$ lerna run --ignore package-1 test
$ lerna run --ignore "package-@(1|2)" --ignore package-3 lint

More examples of filtering can be found here.

--no-private

Exclude private packages. They are included by default.

--since [ref]

Only include packages that have been changed since the specified ref. If no ref is passed, it defaults to the most-recent tag.

# List the contents of packages that have changed since the latest tag
$ lerna exec --since -- ls -la

# Run the tests for all packages that have changed since `main`
$ lerna run test --since main

# List all packages that have changed since `some-branch`
$ lerna ls --since some-branch

This can be particularly useful when used in CI, if you can obtain the target branch a PR will be going into, because you can use that as the ref to the --since option. This works well for PRs going into the default branch as well as feature branches.

--exclude-dependents

Exclude all transitive dependents when running a command with --since, overriding the default "changed" algorithm.

This flag has no effect without --since, and will throw an error in that case.

--include-dependents

Include all transitive dependents when running a command regardless of --scope, --ignore, or --since.

# example with lerna watch
$ lerna watch --scope=my-package-1 --include-dependents -- lerna run build --stream --scope=\$LERNA_PACKAGE_NAME --include-dependents

--include-dependencies

Include all transitive dependencies when running a command regardless of --scope, --ignore, or --since.

Used in combination with any command that accepts --scope (ls, run, exec, watch). Ensures that all dependencies (and dev dependencies) of any scoped packages (either through --scope or --ignore) are operated on as well.

Note: This will override the --scope and --ignore flags.

This is useful for situations where you want to "set up" a single package that relies on other packages being set up.

# example with lerna watch, watch only package "package-4" and its dependencies and run the test script for the package that changed
$ lerna watch --scope="package-4" --include-dependencies -- lerna run test --scope=\$LERNA_PACKAGE_NAME

--include-merged-tags

$ lerna exec --since --include-merged-tags -- ls -la

Include tags from merged branches when running a command with --since. This is only useful if you do a lot of publishing from feature branches, which is not generally recommended.

Readme

Keywords

none

Package Sidebar

Install

npm i @qoopido/lerna.filter-packages

Weekly Downloads

0

Version

1.15.3-alpha.0

License

MIT

Unpacked Size

19.1 kB

Total Files

15

Last publish

Collaborators

  • qoopido