https://github.com/leothorp/yarn-exclude
https://github.com/leothorp/yarn-exclude
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/leothorp/yarn-exclude
- Owner: leothorp
- Created: 2021-02-21T06:44:55.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-06-05T01:06:58.000Z (about 4 years ago)
- Last Synced: 2025-02-19T00:34:31.474Z (over 1 year ago)
- Language: JavaScript
- Size: 156 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# yarn-exclude
## \*\* Note: This package isn't actively maintained- I wouldn't recommend using it for anything other than experimentation. \*\*
Tool for excluding specific workspaces when installing project packages in a yarn 1 monorepo.
### Installation
```
npm i -g yarn-exclude
```
or to just start using without the global install:
```
npx yarn-exclude --exclude package-name
```
### Overview
This library provides a way to exclude packages in a yarn monorepo when running `yarn install`, only installing dependencies for the desired workspaces. The main intended use case is for easily deploying a single workspace to a CI environment.
This is accomplished by temporarily modifying package.json to only contain the non-excluded workspaces before running `yarn install` (essentially simulating what would happen if the excluded packages were never present in the first place).
### Usage
If we have the following `workspaces` config:
```
"workspaces": {
"packages": [
"packages/one",
"packages/two",
"packages/three"
],
"nohoist": ["react"]
},
```
And we run:
```
//bypass interactive prompt for CI
NPM_CONFIG_YES=true npx yarn-exclude --exclude one,two
```
The result is equivalent to having a `workspaces` config of:
```
"workspaces": {
"packages": [
"packages/three"
],
"nohoist": ["react"]
},
```
and running `yarn install`.
Glob and array notation for `workspaces` will also work.
```
"workspaces": [
"packages/*"
},
```
### CLI Options
`-e --exclude ` Comma separated list of excluded package
dirnames. (Required)
`--cwd ` workspace root directory. (Default:
current working directory)
`--modify` Leave yarn.lock and package.json modifications in place after the operation completes. May be useful in some CI environments.
`-V, --version` output the version number
`-h, --help` display help for command options
### Caveats
* Passing additional CLI options to the underlying `yarn install` is not currently supported.
* `yarn-exclude` will not check if the excluded workspace is actually depended upon or not by any of the included ones; you'll have to make sure of that yourself before running this.