feat(yarn)!: add optional support for yarn berry (#12374)

BREAKING CHANGE: some `yarn` aliases changed . Please see README for further information.

Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
This commit is contained in:
Jeroen Claassens 2024-05-30 20:31:39 +02:00 committed by GitHub
parent 2c08d2b842
commit 189774c5d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 84 additions and 48 deletions

View File

@ -1,7 +1,7 @@
# Yarn plugin
This plugin adds completion for the [Yarn package manager](https://yarnpkg.com/en/),
as well as some aliases for common Yarn commands.
This plugin adds completion for the [Yarn package manager](https://yarnpkg.com/en/), as well as some aliases
for common Yarn commands.
To use it, add `yarn` to the plugins array in your zshrc file:
@ -11,48 +11,64 @@ plugins=(... yarn)
## Global scripts directory
It also adds `yarn` global scripts dir (commonly `~/.yarn/bin`) to the `$PATH`.
To disable this feature, set the following style in your `.zshrc`:
It also adds `yarn` global scripts dir (commonly `~/.yarn/bin`) to the `$PATH`. To disable this feature, set
the following style in your `.zshrc`:
```zsh
zstyle ':omz:plugins:yarn' global-path no
```
## Yarn Berry
If you are using Yarn berry (a.k.a. Yarn version 2 or higher) as your global Yarn version you should configure
this plugin to configure its aliases accordingly, set the following style in your `.zshrc`:
```zsh
zstyle ':omz:plugins:yarn' berry yes
```
## Aliases
| Alias | Command | Description |
| ----- | ----------------------------------------- | ----------------------------------------------------------------------------- |
| y | `yarn` | The Yarn command |
| ya | `yarn add` | Install a package in dependencies (`package.json`) |
| yad | `yarn add --dev` | Install a package in devDependencies (`package.json`) |
| yap | `yarn add --peer` | Install a package in peerDependencies (`package.json`) |
| yb | `yarn build` | Run the build script defined in `package.json` |
| ycc | `yarn cache clean` | Clean yarn's global cache of packages |
| yd | `yarn dev` | Run the dev script defined in `package.json` |
| yf | `yarn format` | Run the dev script defined in `package.json` |
| yga | `yarn global add` | Install packages globally on your operating system |
| ygls | `yarn global list` | Lists global installed packages |
| ygrm | `yarn global remove` | Remove global installed packages from your OS |
| ygu | `yarn global upgrade` | Upgrade packages installed globally to their latest version |
| yh | `yarn help` | Show help for a yarn command |
| yi | `yarn init` | Interactively creates or updates a package.json file |
| yin | `yarn install` | Install dependencies defined in `package.json` |
| yln | `yarn lint` | Run the lint script defined in `package.json` |
| ylnf | `yarn lint --fix` | Run the lint script defined in `package.json`to automatically fix problems |
| yls | `yarn list` | List installed packages |
| yout | `yarn outdated` | Check for outdated package dependencies |
| yp | `yarn pack` | Create a compressed gzip archive of package dependencies |
| yrm | `yarn remove` | Remove installed packages |
| yrun | `yarn run` | Run a defined package script |
| ys | `yarn serve` | Start the dev server |
| yst | `yarn start` | Run the start script defined in `package.json` |
| yt | `yarn test` | Run the test script defined in `package.json` |
| ytc | `yarn test --coverage` | Run the test script defined in `package.json` with coverage |
| yuc | `yarn global upgrade && yarn cache clean` | Upgrade global packages and clean yarn's global cache |
| yui | `yarn upgrade-interactive` | Prompt for which outdated packages to upgrade |
| yuil | `yarn upgrade-interactive --latest` | Prompt for which outdated packages to upgrade to the latest available version |
| yup | `yarn upgrade` | Upgrade packages to their latest version |
| yv | `yarn version` | Update the version of your package |
| yw | `yarn workspace` | Run a command within a single workspace. |
| yws | `yarn workspaces` | Run a command within all defined workspaces. |
| yy | `yarn why` | Show why a package has been installed, detailing which other packages depend on it |
- Aliases marked with <sup>`*`</sup> are only available when using Yarn v1 (non-berry)
- Aliases marked with <sup>`b`</sup> are only available when using Yarn berry
| Alias | Command | Description |
| ------------------ | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| y | `yarn` | The Yarn command |
| ya | `yarn add` | Install a package in dependencies (`package.json`) |
| yad | `yarn add --dev` | Install a package in devDependencies (`package.json`) |
| yap | `yarn add --peer` | Install a package in peerDependencies (`package.json`) |
| yb | `yarn build` | Run the build script defined in `package.json` |
| ycc | `yarn cache clean` | Clean yarn's global cache of packages |
| yd | `yarn dev` | Run the dev script defined in `package.json` |
| yf | `yarn format` | Run the dev script defined in `package.json` |
| yh | `yarn help` | Show help for a yarn command |
| yi | `yarn init` | Interactively creates or updates a package.json file |
| yin | `yarn install` | Install dependencies defined in `package.json` |
| yln | `yarn lint` | Run the lint script defined in `package.json` |
| ylnf | `yarn lint --fix` | Run the lint script defined in `package.json`to automatically fix problems |
| yp | `yarn pack` | Create a compressed gzip archive of package dependencies |
| yrm | `yarn remove` | Remove installed packages |
| yrun | `yarn run` | Run a defined package script |
| ys | `yarn serve` | Start the dev server |
| yst | `yarn start` | Run the start script defined in `package.json` |
| yt | `yarn test` | Run the test script defined in `package.json` |
| ytc | `yarn test --coverage` | Run the test script defined in `package.json` with coverage |
| yui | `yarn upgrade-interactive` | Prompt for which outdated packages to upgrade |
| yuil | `yarn upgrade-interactive --latest` (or see `yui` when using [yarn berry](#yarn-berry)) | Prompt for which outdated packages to upgrade to the latest available version |
| yii | `yarn install --frozen-lockfile` (or `yarn install --immutable` when using [yarn berry](#yarn-berry)) | Install dependencies and abort if the lockfile was to be modified |
| yifl | `yii` | Install dependencies and abort if the lockfile was to be modified |
| yup | `yarn upgrade` | Upgrade packages to their latest version |
| yv | `yarn version` | Update the version of your package |
| yw | `yarn workspace` | Run a command within a single workspace. |
| yws | `yarn workspaces` | Run a command within all defined workspaces. |
| yy | `yarn why` | Show why a package has been installed, detailing which other packages depend on it |
| yga<sup>`*`</sup> | `yarn global add` | Install packages globally on your operating system |
| ygls<sup>`*`</sup> | `yarn global list` | Lists global installed packages |
| ygrm<sup>`*`</sup> | `yarn global remove` | Remove global installed packages from your OS |
| ygu<sup>`*`</sup> | `yarn global upgrade` | Upgrade packages installed globally to their latest version |
| yls<sup>`*`</sup> | `yarn list` | List installed packages |
| yout<sup>`*`</sup> | `yarn outdated` | Check for outdated package dependencies |
| yuca<sup>`*`</sup> | `yarn global upgrade && yarn cache clean` | Upgrade global packages and clean yarn's global cache |
| ydlx<sup>`b`</sup> | `yarn dlx` | Run a package in a temporary environment. |
| yn<sup>`b`</sup> | `yarn node` | Run node with the hook already setup. |

View File

@ -18,17 +18,11 @@ alias yb="yarn build"
alias ycc="yarn cache clean"
alias yd="yarn dev"
alias yf="yarn format"
alias yga="yarn global add"
alias ygls="yarn global list"
alias ygrm="yarn global remove"
alias ygu="yarn global upgrade"
alias yh="yarn help"
alias yi="yarn init"
alias yin="yarn install"
alias yln="yarn lint"
alias ylnf="yarn lint --fix"
alias yls="yarn list"
alias yout="yarn outdated"
alias yp="yarn pack"
alias yrm="yarn remove"
alias yrun="yarn run"
@ -36,11 +30,37 @@ alias ys="yarn serve"
alias yst="yarn start"
alias yt="yarn test"
alias ytc="yarn test --coverage"
alias yuc="yarn global upgrade && yarn cache clean"
alias yui="yarn upgrade-interactive"
alias yuil="yarn upgrade-interactive --latest"
alias yup="yarn upgrade"
alias yv="yarn version"
alias yw="yarn workspace"
alias yws="yarn workspaces"
alias yy="yarn why"
# Commands that are specific to the yarn version being used
if zstyle -t ':omz:plugins:yarn' berry; then
# aliases that differ
alias yuil='yui' # --latest flag was removed in yarn berry
alias yii='yarn install --immutable'
alias yifl='yarn install --immutable'
# unique aliases
alias ydlx="yarn dlx"
alias yn="yarn node"
else
# aliases that differ
alias yuil='yarn upgrade-interactive --latest'
alias yii='yarn install --frozen-lockfile'
alias yifl='yarn install --frozen-lockfile'
# unique aliases
alias yga="yarn global add"
alias ygls="yarn global list"
alias ygrm="yarn global remove"
alias ygu="yarn global upgrade"
alias yls="yarn list"
alias yout="yarn outdated"
alias yuca="yarn global upgrade && yarn cache clean"
fi
unset is_yarn_berry