A bash-based tool for managing multiple Node.js versions and virtual environments using subshells.
nave is a command-line tool for managing multiple Node.js versions and virtual environments on Unix-like systems. It solves the problem of switching between Node versions for different projects by creating isolated subshell environments, each with its own Node installation and global npm space.
Node.js developers working on multiple projects with different version requirements, especially those using bash or compatible shells who prefer subshell-based isolation over global version switching.
Developers choose nave for its simplicity, subshell-based approach that avoids shell pollution, and its ability to manage named environments without modifying system files, making it a lightweight and portable alternative to other version managers.
Virtual Environments for Node
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses subshells to switch Node versions, preventing global shell pollution and allowing easy exit with 'exit' or ^D, as highlighted in the README's core philosophy.
Operates without editing .bashrc or .profile, making installation portable and non-intrusive, per the installation section stating 'just install and go'.
Automatically loads environments based on .naverc or .nvmrc files in project directories, enabling seamless context switching with commands like 'nave auto'.
Supports creating custom-named environments for different projects, providing better isolation and management, as shown in the usage examples for named envs.
Allows installation of any Node version, including SemVer tuples, LTS releases, or latest stable builds, with flexible version strings detailed in the README.
Requires bash and is incompatible with Windows natively, limiting use to Unix-like systems with bash, as admitted in the compatibility section.
Features like aliasing 'cd' to auto-load environments can be overly magical and interfere with normal shell operations, with the README warning about 'surprising side effects'.
The subshell-based approach adds overhead for non-interactive scripts, making it slower for automated environments where exec mode is a workaround but not seamless.