Query workspaces with package.json
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=212022&style=for-the-badge">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/badge/%E2%AC%85%20back-%20?color=f6f7f8&style=for-the-badge">
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/v/release/1aron/utils?include_prereleases&color=212022&label=&style=for-the-badge&logo=github&logoColor=fff">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/v/release/1aron/utils?include_prereleases&color=f6f7f8&label=&style=for-the-badge&logo=github&logoColor=%23000">
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/dm/to-query-workspaces?color=212022&label=%20&logo=npm&style=for-the-badge">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/npm/dm/to-query-workspaces?color=f6f7f8&label=%20&logo=npm&style=for-the-badge">
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/static/v1?label=%20&message=twitter&color=212022&logo=twitter&style=for-the-badge">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/static/v1?label=%20&message=twitter&color=f6f7f8&logo=twitter&style=for-the-badge">
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/github/actions/workflow/status/1aron/utils/release.yml?branch=main&label=%20&message=twitter&color=212022&logo=githubactions&style=for-the-badge">
<source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/github/actions/workflow/status/1aron/utils/release.yml?branch=main&label=%20&message=twitter&color=f6f7f8&logo=githubactions&style=for-the-badge&logoColor=%23000">
</picture>
- By default, read
.workspaces
of package.json in the current working directory - By default, workspaces in node_modules are excluded
Getting Started
npm install to-query-workspaces
Preparation
Your monorepo usually looks like this:
.
├── package.json
└── packages
+ ├─── a
│ └─── package.json
+ ├─── b
│ ├─── node_modules
│ │ └─── fake-module
│ │ └─── package.json
+ │ ├─── bb
│ │ └─── package.json
│ └─── package.json
└─── c
./package.json
{
"workspaces": ["packages/**"]
}
Usage
queryWorkspaces(patterns?, options?): string[]
import queryWorkspaces from 'to-query-workspaces'
const workspaces = queryWorkspaces()
// ['packages/a', 'packages/b', 'packages/b/bb']
const workspaces = queryWorkspaces(['packages/*'])
// ['packages/a', 'packages/b']
Options
Inherited from fast-glob options
{
cwd: process.cwd(),
ignore: ['**/node_modules/**']
}
<picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=212022&style=for-the-badge"> <source media="(prefers-color-scheme: light)" srcset="https://img.shields.io/badge/%E2%AC%85%20back%20to%20contents-%20?color=f6f7f8&style=for-the-badge">