Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

find-workspaces

joshuajaco256.7kMIT0.3.1TypeScript support: included

Find all the workspaces of a monorepo.

workspaces, packages, monorepo, yarn, npm, pnpm, lerna, bolt

readme

find-workspaces npm downloads Coverage Status code style: prettier

Find all the workspaces of a monorepo.

It supports:

Installation

# npm
npm i find-workspaces

# yarn
yarn add find-workspaces

# pnpm
pnpm add find-workspaces

Usage

// esm
import { findWorkspaces } from "find-workspaces";
// commonjs
const { findWorkspaces } = require("find-workspaces");

const workspaces = findWorkspaces();

console.log(workspaces);

API

findWorkspaces(dirname, options)

Finds all workspaces.
Returns Workspace[] or null if dirname is not inside a monorepo.

dirname

Type: string | undefined
Default: process.cwd()

The directory to start searching for the monorepo root.

Options

Type: Options
Default: {}

See Options

findWorkspacesRoot(dirname, options)

Finds the monorepo root. Returns WorkspacesRoot or null if dirname is not inside a monorepo.

dirname

Type: string | undefined
Default: process.cwd()

The directory to start searching for the monorepo root.

Options

Type: Options
Default: {}

See Options

createWorkspacesCache()

Returns a cache which can be provided to findWorkspaces and findWorkspacesRoot.

Options

stopDir

Type: string | undefined
Default: os.homedir()

The directory to stop searching for the monorepo root.
The provided directory will not be included in the search.

cache

Type: Cache | undefined

An optional cache created by createWorkspacesCache.

Workspace

location

Type: string

The location of the workspace as an absolute path.

package

Type: PackageJson

The parsed package.json file of the workspace.

WorkspaceRoot

location

Type: string

The location of the workspace as an absolute path.

globs

Type: string[]

A list of the glob patterns used to define the workspaces.

License

MIT

changelog

Changelog

v0.3.1 - 2024-02-16

  • Fixed types field in package.json

v0.3.0 - 2023-11-19

  • Updated to new Lerna defaults, see Lerna v7 changelog
  • Optimized caching by ignoring nested workspace roots.
    Most tools already error when trying to use a nested workspace root, so this should not be a breaking change.

v0.2.0 - 2023-06-10

  • Now ignores workspaces that do not have a name property defined in their package.json file
  • Replaced type-fest with pkg-types for the package.json type definitions