workspaces-affected
Version:
This tool is providing support for running operations only on affected packages in your [npm workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces#defining-workspaces)
60 lines (49 loc) • 1.88 kB
Markdown
## workspaces-affected
This tool is providing support for running operations only on affected packages in your [npm workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces#defining-workspaces)
## Usage:
```
npx workspaces-affected@latest build --base origin/master
```
### `--base` flag
base can be any git ref, for example:
```
npx workspaces-affected build --base COMMIT_ID
```
## npm workspaces support
This example is showing usage of `--is-present` flag and also passing `--coverage` to `test` script:
```
npx workspaces-affected@latest test --base=origin/master --if-present -- --coverage
```
## github actions example
This workflow will run check for coverage only for affected packages in the workspace:
```yaml
name: My awesome workflow
on:
pull_request:
branches:
- main
jobs:
workflow-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm install
- run: npx workspaces-affected@latest test --base=origin/main --if-present -- --coverage
```
### `--ignore-private` flag
This will ignore private packages (packages.json `private: true`)
```
npx workspaces-affected build --base COMMIT_ID --ignore-private
```
## Options
| Flag | Required | Default | Description |
|---------------|----------|---------|-------------------------------------------------|
| --base | true | master | git ref to compare changes to. |
| --with-side | false | false | When true, listing also side affected packages. |
| --ignore-private | false | false | When true, private packages will be ignored. |
| --ignore-pattern | false | "" | Glob pattern to be ignored when fetching affected files. |