2018-10-04 00:01:03 +08:00
|
|
|
# nvm plugin
|
|
|
|
|
2022-11-16 03:23:09 +08:00
|
|
|
This plugin adds autocompletions for [nvm](https://github.com/nvm-sh/nvm) — a Node.js version manager. It also
|
|
|
|
automatically sources nvm, so you don't need to do it manually in your `.zshrc`.
|
2018-10-04 00:01:03 +08:00
|
|
|
|
|
|
|
To use it, add `nvm` to the plugins array of your zshrc file:
|
2020-10-08 23:21:34 +08:00
|
|
|
|
2018-10-04 00:01:03 +08:00
|
|
|
```zsh
|
|
|
|
plugins=(... nvm)
|
|
|
|
```
|
2020-10-08 23:21:34 +08:00
|
|
|
|
|
|
|
## Settings
|
|
|
|
|
2021-01-02 21:04:34 +08:00
|
|
|
If you installed nvm in a directory other than `$HOME/.nvm`, set and export `NVM_DIR` to be the directory
|
|
|
|
where you installed nvm.
|
|
|
|
|
|
|
|
These settings should go in your zshrc file, before Oh My Zsh is sourced:
|
|
|
|
|
2020-10-08 23:21:34 +08:00
|
|
|
- **`NVM_HOMEBREW`**: if you installed nvm via Homebrew, in a directory other than `/usr/local/opt/nvm`, you
|
2021-12-29 23:55:35 +08:00
|
|
|
can set `NVM_HOMEBREW` to be the directory where you installed it. For example, on Apple Silicon-based Macs,
|
|
|
|
[Homebrew is installed in `/opt/homebrew`](https://docs.brew.sh/Installation). To get the directory where
|
|
|
|
nvm has been installed, regardless of chip architecture, use `NVM_HOMEBREW=$(brew --prefix nvm)`.
|
2020-10-09 22:35:47 +08:00
|
|
|
|
2022-11-16 03:23:09 +08:00
|
|
|
## Customization
|
2021-06-14 01:32:47 +08:00
|
|
|
|
2022-11-16 03:23:09 +08:00
|
|
|
#### Lazy startup
|
2017-01-14 09:15:12 +08:00
|
|
|
|
2022-11-16 03:23:09 +08:00
|
|
|
This option will help you to defer nvm's load until you use it to speed-up your zsh startup. This will source
|
2024-08-28 16:34:25 +08:00
|
|
|
nvm script only when using it, and will create a function for `node`, `npm`, `npx`, `pnpm`, `pnpx`, `yarn`,
|
|
|
|
`corepack` and the command(s) specified by `lazy-cmd` option, so when you call either of them, nvm will be
|
|
|
|
loaded and run with default version. To enable it, you can add this snippet to your zshrc, before Oh My Zsh is
|
|
|
|
sourced:
|
2022-11-16 03:23:09 +08:00
|
|
|
|
|
|
|
```zsh
|
|
|
|
zstyle ':omz:plugins:nvm' lazy yes
|
|
|
|
```
|
|
|
|
|
|
|
|
Then, to define extra commands that will also trigger nvm load, you can use a similar syntax, adding as many
|
|
|
|
as you want:
|
|
|
|
|
|
|
|
```zsh
|
|
|
|
zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ...
|
|
|
|
```
|
|
|
|
|
2024-09-19 17:44:51 +08:00
|
|
|
There will be a function `_omz_nvm_load` available to load `nvm` without executing any other trigger command.
|
|
|
|
|
2022-11-16 03:23:09 +08:00
|
|
|
#### `.nvmrc` autoload
|
|
|
|
|
2024-03-04 18:02:37 +08:00
|
|
|
Note: _if used at the same time as `lazy`, `autoload` will start working only after nvm has been lazy-loaded_
|
2023-06-20 15:36:11 +08:00
|
|
|
|
2022-11-16 03:23:09 +08:00
|
|
|
If set, the plugin will automatically load a node version when if finds a
|
|
|
|
[`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node
|
|
|
|
version to load. This can be done, similar as previous options, adding:
|
|
|
|
|
|
|
|
```zsh
|
2022-12-02 02:44:48 +08:00
|
|
|
zstyle ':omz:plugins:nvm' autoload yes
|
2023-07-16 04:10:48 +08:00
|
|
|
zstyle ':omz:plugins:nvm' silent-autoload yes # optionally remove the output generated by NVM when autoloading
|
2022-12-02 02:44:48 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
Note: _this will not remove regular `nvm` output_
|