Fast Node Manager
/ October 30, 2024
Looking for a Node.js version manager that works cross-platform, might be worth trying out fnm.
1. Why fnm? I’ve previously used Node Version Manager (NVM) on macOS and Linux machines, but recently switched back to using my Windows machine. While there is a NVM for Windows, I noticed that the Node.js installation instructions used something called fnm.
2. What is fnm? Fast Node Manager (fnm) is a Node.js version manager, designed to be lightweight and efficient due to its development in Rust. Unlike nvm, which provides more features such as support for multiple languages and global binaries, fnm focuses on providing a simple and fast Node.js version manager.
3. Commands Overview: fnm comes with familiar commands for version and package management:
Commands:
list-remote List all remote Node.js versions [aliases: ls-remote]
list List all locally installed Node.js versions [aliases: ls]
install Install a new Node.js version [aliases: i]
use Change Node.js version
env Print and set up required environment variables for fnm
completions Print shell completions to stdout
alias Alias a version to a common name
unalias Remove an alias definition
default Set a version as the default version
current Print the current Node.js version
exec Run a command within fnm context
uninstall Uninstall a Node.js version [aliases: uni]
help Print this message or the help of the given subcommand(s)
You can find more details on the commands and options.
4. Getting Started with fnm: It's probably best to uninstall any previous Node.js versions before getting started.
Installation:
Windows:
- Install using
wingetby running the following in PowerShell:winget install Schniz.fnm
Linux/macOS:
- The easiest option is to use the install script:
curl -fsSL https://fnm.vercel.app/install | bash
Shell Setup: Once installed, the shell needs setting up. If the install script wasn't run, then follow these steps:
Bash:
eval "$(fnm env --use-on-cd --shell bash)"
Zsh:
eval "$(fnm env --use-on-cd --shell zsh)"
Windows/PowerShell: After installation, open a new PowerShell window. If fnm is not recognized, run:
fnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression
5. Managing Node.js Versions with fnm:
-
Check installed Node.js versions:
fnm list -
See available Node.js versions for download:
fnm list-remote -
Install a specific version (e.g., version 20):
fnm install 20 -
Install the latest version (e.g., version 22):
fnm install 22 -
Install a specific version by number (e.g., 19.8.1):
fnm install 19.8.1 -
Use a specific version:
fnm use 20 -
Download and use Node.js in one go:
fnm use --install-if-missing 22
Using fnm makes managing Node.js versions a breeze. Whether you're switching between projects with different requirements or just want to try out the latest features, fnm has you covered.