I use mise-en-place so I don't need a different tool for other languages, it's fast and very good. The broader standard of a asdf style .tool-versions is nice for consistency between e.g. Python and Node.
Hi there!
So... I've been using FNM for a couple of years already. And I looked into it, and it seems that there's experimental support for the "engines" prop of the package.json file: github.com/Schniz/fnm/pull/839
Just wanted to point that out
You should also compare mise which manages node, neovim, python, etc for me and can be used for many more tools.
https:// mise.jdx.dev/
I'm not sure why it doesn't catches the conversation, maybe because they don't advertise it as "node version manager" or "python version manager" which is what people mostly search for. Instead, it is "almost anything version manager" and can be extended to support currently unsupported softwares by creating plugins.
As a long-time user of nvm and then n, I would like to add the crucial difference between those two, and why I prefer n over nvm. nvm works through usage of environment variables, changing the path for the node executable file. While this can be enough for most users, I've encountered problems in integrated shells in IDEs (namely in Sublime Text 2, back in the day). Back then, the IDE spawned a shell with a clean and minimal environment (using something like env -i), thus wiping any nvm configurations from the session. n uses symbolic links to manage node and npm versions, thus being a little more robust to differences in environments.
I also thought you could use .nvmrc to set node version within a project. You can even have your bash/zsh/fish automatically run nvm use on cd commands so it automatically picks up the version.
While you say that n is even more limited, it does work with fish, which is why I use it over all others and have for years. It also has some support for .nvmrc so that you can use n auto while others use nvm use.
If you need anything about crypto recovery just contact (bensoncryptorecoveryexpert@gmail.com) I have never seen such tech skills in my life before, They helped me recover my $95,000 btc i invested in a forex platform and couldn’t withdraw it. I contacted them via the above email address and everything worked out fine. They did exactly as they said.
It doesn’t switch Node.js version dynamically as you navigate from project to project.
This is somewhat correct for shells but not for projects. Using the use-node-version property in a .npmrc file forces PNPM to use that version of Node in its execution context and auto-installs the declared version of Node if not previously downloaded. You can have nested .npmrc files (think monorepo) to use different versions of Node for targeted projects all isolated from each other as well as your global version.
This means your global Node version (set by PNPM) does not affect your locally declared Node version and doesn't require any separate configuration or commands, like nvm use, to switch Node versions.
Lamri Abdellah Ramdane
Developer passionate about clean code, open source, and exploring new tech.
Excellent comparison of Node.js version managers! It really shows the effort needed for environment setup. I've found ServBay simplifies my entire local dev environment, letting me focus on development instead of managing versions. Super helpful analysis!