nevermind
a node version manager
A play on nvm
. Inspired by both nvm-sh and nvm-windows, which were written in shell and go, respectively.
Installation (WIP)
Currently in development.
Requirements:
- Docker
- VSCode
Getting Started:
- Use/Open in VSCode devcontainer (.devcontainer directory) extension
- Run the go package download prompts
You might need to build the executable:
go build -o ~/.nevermind/bin ./nvm-shim
Or with go generate
:
go generate ./...
Make sure this directory is in your PATH
(perhaps via .bashrc
):
export PATH="$HOME/.nevermind/bin:$PATH"
go run ./nvm install 16.0.0
go run ./nvm use 16.0.0
This should have created a ~/.nevermind/config.json
file pointing to the version you've set to use
, and installed that version to ~/.nevermind/node/
.
Run with DEBUG=1
to output debug logs:
DEBUG=1 go run ./nvm install 16.0.0
If this is all set up, you should be able to run:
node -v
(WIP) npm
, npx
, and anything installed via npm i -g
Remaining tasks
- github actions for building and generating tags and packages
- no idea if this is what I want
- install script (bash?)
- I want a way to automatically build nvm-shim, update PATH, create binary symlinks on installation
nvm tasks:
- progress bar on node download
- search for matching node download if only major or minor numbers are given
- write nvm install script for windows (extracting zip at minimum)
- tests
- ability to download latest LTS
- optimize downloads and untar/ungzip with streams
- ideally download to file & ungzip & sha at the same time with io.MultiWriter (am I crazy?)
nvm-shim tasks:
- tests
- figure out global installs (e.g. npm i -g yarn)
- it goes to node/v/bin as a symlink