mirror of
https://github.com/nodejs/node.git
synced 2025-05-15 08:02:06 +00:00
![]() PR-URL: https://github.com/nodejs/node/pull/35953 Reviewed-By: Ruy Adorno <ruyadorno@github.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> |
||
---|---|---|
.. | ||
CHANGELOG.md | ||
index.js | ||
LICENSE | ||
package.json | ||
README.md |
@npmcli/map-workspaces
Retrieves a name:pathname Map for a given workspaces config.
Long version: Reads the workspaces
property from a valid workspaces configuration object and traverses the paths and globs defined there in order to find valid nested packages and return a Map of all found packages where keys are package names and values are folder locations.
Install
npm install map-workspaces
Usage:
const mapWorkspaces = require('@npmcli/map-workspaces')
await mapWorkspaces({
workspaces: {
packages: [
"a",
"b"
]
}
}, { cwd })
// ->
// Map {
// 'a': '<cwd>/a'
// 'b': '<cwd>/b'
// }
Examples:
Glob usage:
Given a folder structure such as:
├── package.json
└── apps
├── a
│ └── package.json
├── b
│ └── package.json
└── c
└── package.json
const mapWorkspaces = require('@npmcli/map-workspaces')
await mapWorkspaces({
workspaces: [
"apps/*"
]
}, { cwd })
// ->
// Map {
// 'a': '<cwd>/apps/a'
// 'b': '<cwd>/apps/b'
// 'c': '<cwd>/apps/c'
// }
API:
mapWorkspaces(pkg, opts = {}) -> Promise<Map>
pkg
: A validpackage.json
Objectopts
:cwd
: A String defining the base directory to use when reading globs and paths.ignore
: An Array of paths to be ignored when using globs to look for nested package.- ...Also support all other glob options
Returns
A Map in which keys are package names and values are the pathnames for each found workspace.