https://github.com/angelmunoz/nvmfs
A dead-simple node version manager written in F#
https://github.com/angelmunoz/nvmfs
cli dotnet fsharp manager net6 node node-version-manager nodejs version
Last synced: about 1 month ago
JSON representation
A dead-simple node version manager written in F#
- Host: GitHub
- URL: https://github.com/angelmunoz/nvmfs
- Owner: AngelMunoz
- License: mit
- Created: 2020-12-09T09:02:21.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-31T04:37:18.000Z (6 months ago)
- Last Synced: 2025-03-10T07:01:48.170Z (about 2 months ago)
- Topics: cli, dotnet, fsharp, manager, net6, node, node-version-manager, nodejs, version
- Language: F#
- Homepage:
- Size: 75.2 KB
- Stars: 20
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[nvm]: https://github.com/nvm-sh/nvm
[volta]: https://volta.sh/
[nvm-windows]: https://github.com/coreybutler/nvm-windows# NvmFs
> Node Version Manager F#
>
> Get the binaries at the [releases](https://github.com/AngelMunoz/NvmFs/releases) tab
>
> if you have the dotnet-sdk installed run `dotnet tool install -g NvmFs`A Node version Manager Written in F#
This is probably the simplest Node Version Manager you'll find it doesn't have a lot of features and this is on purpose for more complete solutions please take a look at [nvm], [volta], [nvm-windows].
## Why would you want this?
If you want a dead simple node version manager this is for you.
Also, this tool is distributed in binary form as well as a `dotnet tool` so if you're running on CI with dotnet available and depend on installing a specific node version, perhaps this is the reason you may want it above the others.
## Why would you not want this?
> tl;dr: You need something else rather than just `nvmfs install version` or `nvmfs use version`
- You need to run commands with different versions of node in the current shell without setting a global default [like this](https://docs.volta.sh/reference/run).
- You need to reinstall packages between versions [like this](https://github.com/nvm-sh/nvm#migrating-global-packages-while-installing)
- You need different architectures [like this](https://github.com/coreybutler/nvm-windows#usage)
## Misc. Info
We don't handle existing node instalations outside the `NVMFS_HOME` directory
- Windows
- We use the user's system environment variables, if your powershell/cmd session is not recognizing node, then you need to close it and open it again, in the worst case you just need to log off and log in back to your account
- we use cmd's `mklink` to create junctions on windows> In versions lower than 0.6.0 we used to re-write the user's path but that also expanded any Environment variable that was part of the PATH, rather than doing that we now just add the **NVMFS_HOME** and **NVMFS_NODE** environment variables to the user's variables, it is up to you to add **%NVMFS_NODE%%** to the **PATH** variable
- Unix
- We append environment variables to the PATH using the `~/.bashrc`
- We use `ln -s` to create symlinks
- We use `unlink` to remove symlinks
- We use `chmod +x` to set execute permissions once we symlink the selected version
> Don't forget to call `source ~/.bashrc` to make your current terminal aware of the changes, other terminals will pick up those automatically## Customization
You can customize paths using the following environment variables
- `NVMFS_HOME` - where is nvmfs going to download node versions, defaults to
> $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}/nvmfs"
- `C:\Users\username\AppData\Roaming\nvmfs` on windows
- `/home/username/.config/nvmfs` on linux/macos- `NVMFS_NODE` - symlinked location that will be added to the PATH
- `%%NVMFS_HOME%%\bin` on windows
- `$NVMFS_HOME/bin` on linux/macos
- `NVM_SOURCE_BASE_URL` - the base url to get node distributions, (defaults to https://nodejs.org/dist)### nvmfs help
```
Description:
nvmfs is a simple node version manager that just downloads and sets node versions. That's it!Usage:
NvmFs [command] [options]Options:
--version Show version information
-?, -h, --help Show help and usage informationCommands:
install Installs the specified node version or the latest LTS by default []
uninstall Uninstalls the specified node version []
use Sets the Node Version []
list Shows the available node versions
```### nvmfs install --help
```
Description:
Installs the specified node version or the latest LTS by defaultUsage:
NvmFs install [] [options]Arguments:
Installs the specified node version []Options:
-l, --lts Ignores version and pulls down the latest LTS version []
-c, --current Ignores version and pulls down the latest Current version []
-d, --default Sets the downloaded version as default [default: False]
-?, -h, --help Show help and usage information
```### nvmfs use --help
```
Description:
Sets the Node VersionUsage:
NvmFs use [] [options]Arguments:
Installs the specified node version []Options:
-l, --lts Ignores version and pulls down the latest LTS version []
-c, --current Ignores version and pulls down the latest Current version []
-?, -h, --help Show help and usage information
```### nvmfs uninstall --help
```
Description:
Uninstalls the specified node versionUsage:
NvmFs uninstall [] [options]Arguments:
Installs the specified node version []Options:
-?, -h, --help Show help and usage information
```### nvmfs list --help
```
Description:
Shows the available node versionsUsage:
NvmFs list [options]Options:
-r, --remote Displays the last downloaded version index in the console []
-u, --update Use together with --remote, pulls the version index from the node website []
-?, -h, --help Show help and usage information
```