fnm
asdf
Our great sponsors
fnm | asdf | |
---|---|---|
50 | 273 | |
10,181 | 16,645 | |
- | 1.6% | |
9.3 | 8.3 | |
about 12 hours ago | 5 days ago | |
Rust | Shell | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fnm
- Is Pop!_OS aiming to be an immutable OS?
- How to Install Multiple Node.js Versions On the Same Machine
-
I eventually stopped using a plugin manager
https://github.com/Schniz/fnm works pretty well with fish, btw. The main drawback is that it doesn't have a command to automatically install your global npm packages from the last version. But it is not too hard to make your own.
- zsh plugin for lazy loading nvm (no more lags)
-
Linux: Best way to install node & npm
or, just use nvm (https://github.com/nvm-sh/nvm) or fnm (https://github.com/Schniz/fnm). fnm is nice because it does not lag shell startup as much as nvm. these latter two options may be better for dev than production, just since it is mostly installed to your local environment
-
How to improve startup time?
Related to this, I have been using fnm as a drop-in replacement for nvm for years, possibly 44x times faster but can't vouch for the benchmark :)
-
Why my ZSH take too much time to load?
I agree with trying to lazyload these libs. Another helpful tip is I switched from nvm to fnm maybe half a dozen years ago and it is so much faster, I even alias nvm="fnm" and I am not someone that switches to rust things because "rust".
-
Introduction to Execution Machine (EXM) - Permanent Serverless Functions
Node.js installed on your machine. I recommend installing Node.js either via NVM or FNM
-
Asdf – the language tool version manager
This looks really promising. I love seeing these tools written in languages other than the thing they're targeting.
As an example I use fnm (https://github.com/Schniz/fnm) for managing JavaScript versions. It runs so fast (compared to nvm) I'm inclined to think something went wrong and it silently failed, but it never does!
-
Language Version Managers - the Developer Parachutes
In the Node world, there are a few options like NVM, N, FNM, Volta, and more. I've been a longtime user of NVM, so we'll detail those instructions for use here:
asdf
-
Terraform Version Manangement
We use asdf for managing multiple binary versions. You just add a .tool-versions file with the application and version number in the root directory and just uses that version when you're running tf. https://asdf-vm.com/
-
Show HN: Asdf Clone Written in Rust
I'm on an M1 MacBook Pro 16". The performance issues are well understood by the asdf team and the Github issue with most comments is on the topic: https://github.com/asdf-vm/asdf/issues/290
This was with a half dozen plugins and use_legacy_file disabled. Hardly an edge-case. Though I'll note in other tests it was around 200ms (which is the number I put in the README to be fair). @danfritz in this thread said his can take over 2 seconds!
I think that asdf (https://asdf-vm.com) was a great idea for a project. It helps consolidate installing and running different programming languages into a similar UX. It also is built with a plugin interface that makes it easy to build support for new languages.
However it is so slow. I was just testing `node -v` and it was taking ~900ms. That kind of overhead is completely unusable. My shell prompt uses runtimes inside of it for various things so this effectively makes every command take multiple seconds to complete.
So I rebuilt it in Rust but using the same plugin ecosystem so it should be a drop-in replacement. I also added a couple of features that I wanted from asdf (aliases and fuzzy-matching).
Let me know what you think! Just know that people have only been using this for a few days so if you see any bugs, they're likely not big hairy issues, just overlooked edge-cases and will be fixed soon.
https://github.com/jdxcode/rtx
-
Ask HN: Why does every package+module system become a Rube Goldberg machine?
Not a generic package manager, but it's probably worth calling out asdf as the generic version manager[0] (maybe you're already aware of it, but it's a generic replacement for nvm, rvm, virtualenv, *vm, which supports any language based on plugins.)
Again, maybe you're already aware of it, but I think it's a nice example of genericising a concern common to many languages which sounds similar to what you're asking for (albeit unfortunately in a slightly different space).
-
Rtx: Polyglot Runtime Manager
Not my project but found if while looking into the "asdf" project's performance issues ticket: https://github.com/asdf-vm/asdf/issues/290#issuecomment-1406...
-
Development Containers
My coworker uses this a lot at work. Being by Microsoft that dovetails really well with the visual studio code. I find the CLI to be okay I guess for something written in JavaScript. I prefer ASDF generally[1], there's always a lot of fiddling you have to do with containers, but this is more cross platform so there's that.
- Runtimes JavaScript [pt-br]
-
Apple Unveils MacBook Pro Featuring M2 Pro and M2 Max
What benefit would joining your cult bestow upon me that brew does not already?
My brew list is intentionally very short and my faffing about desire is limited.
Generally I use brew to pull in asdf (https://github.com/asdf-vm/asdf) to install programming languages/tooling, it works flawlessly.
I use Pipx (https://github.com/pypa/pipx) to install python thingies (such as yt-dlp) as a cli. Go and Rust handle binaries in their languages beautifully and without issues.
-
tgenv is dead, long live tgenv!
Not sure of the differences, but I pretty much use asdf for all the version setups I need. There are plugins that support versions for both Terraform and Terragrunt as well.
- Elixir Phoenix - Ubuntu 22 - could not compile dependency :phoenix
What are some alternatives?
pyenv - Simple Python version management
nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
SDKMan - The SDKMAN! Command Line Interface
rbenv - Manage your app's Ruby environment
volta - Volta: JS Toolchains as Code. ⚡
HomeBrew - 🍺 The missing package manager for macOS (or Linux)
nvm for Windows - A node.js version management utility for Windows. Ironically written in Go.
jenv - Manage your Java environment
n - Node version management