A Zsh plugin that automatically installs, updates, and loads nvm with additional utilities like lazy loading and auto-use.
zsh-nvm is a Zsh plugin that automates the installation, updating, and loading of nvm (Node Version Manager). It solves the pain of manually setting up and maintaining nvm by providing a one-time setup that integrates seamlessly into your shell, with additional features like lazy loading and automatic version switching based on .nvmrc files.
Developers using Zsh who work with multiple Node.js versions and want to streamline their nvm management without manual intervention.
It reduces shell startup time through lazy loading, offers safe upgrade/revert capabilities, and automates Node.js version switching, making nvm usage more efficient and less error-prone compared to manual setups.
Zsh plugin for installing, updating and loading nvm
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically installs and sources nvm if not present, removing the need for manual installation and configuration steps as described in the README's automatic installation feature.
Lazy loading via NVM_LAZY_LOAD reduces shell startup time by up to 70x, loading nvm only when commands like node or npm are invoked, with benchmarks provided in the README.
Provides nvm upgrade and nvm revert commands to safely update or rollback nvm versions without affecting installed Node.js versions, offering a clear safety net for maintenance.
With NVM_AUTO_USE, automatically switches Node.js versions based on .nvmrc files in directories, streamlining workflow for developers working on multiple projects with different Node requirements.
Installing Node.js release candidates or nightly builds is admitted to be a hack in the README and may break nvm compatibility in the future, as noted in the warnings section.
Requires setting environment variables like NVM_LAZY_LOAD or NVM_AUTO_USE before plugin loading in .zshrc, which adds setup steps and potential for misconfiguration.
Primarily designed for Zsh and its plugin managers; bash support requires manual installation and lacks the seamless integration, limiting cross-shell usability.