Run any command on specific Node.js versions, including multiple versions at once, without separate installations.
nve is a command-line utility that lets you run any command or script using a specific Node.js version. It solves the problem of quickly testing code across different Node versions without installing them globally or switching entire environments. Unlike full version managers, it focuses on one-off execution for tasks like testing, benchmarking, or checking syntax compatibility.
Node.js developers who need to test or run commands across multiple Node versions, such as those maintaining libraries, checking backward compatibility, or benchmarking performance differences.
Developers choose nve for its speed, ability to run multiple versions simultaneously, and zero-configuration approach—it downloads binaries automatically and works cross-platform without complex setup. It’s ideal for CI/CD pipelines, local testing, and scripting where traditional version managers are too heavy.
Run any command on specific Node.js versions
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show nve averages 295ms per run, significantly faster than nvm exec (741ms) and npx node (1058ms), making it ideal for quick tasks.
Supports running commands across multiple Node versions in parallel with the --parallel flag, accelerating testing and benchmarking workflows.
Downloads Node binaries on-demand without separate installations for each version, reducing setup time and complexity.
Works on Windows, macOS, and Linux without requiring Bash or administrator privileges, unlike many version managers.
Accepts version ranges, aliases like 'latest' or 'lts', and references to files like .nvmrc, providing versatile version management.
Requires Node >=18.18.0 globally installed, which can be a barrier for teams stuck on older systems or versions.
Only compatible with native modules built using N-API and Node >=8.12.0, potentially breaking older or custom modules.
Initial use with a new Node version involves a few-second download, though caching mitigates this for subsequent runs.
Designed strictly for one-off commands, so it cannot manage Node versions for entire projects or shell sessions, limiting its scope.