# nenv A Node environment manager written in rust. ## Features - Written in fast and safe rust - Multiple active nodejs versions at the same time - Configuration for project specific versions - Version matching with semver expressions ## Installation You can either - Install the application with cargo by downloading the repo and running `cargo install --path .` inside - Download the binary from the releases page Now to initialize everything install any nodejs version with `nenv install `. Afterwards add the `bin` directory to your `PATH` variable. On windows this should be `C:\Users\\AppData\Roaming\nenv\bin`. On linux this will be `~/.local/share/nenv/bin`. ## Usage ### Install node versions ```sh # install the latest available node version nenv install latest # install the latest lts version nenv install lts # install the latest 14.x.x version. nenv install 14 ``` ### Change the system-wide default version ```sh nenv default latest ``` ### Refresh installed binaries and upstream versions ```sh nenv refresh ``` ### Pinning binaries to specific node versions ```sh # rome will always be executed with the lts version nenv pin rome lts # tsc will always be executed with the latest typescript version nenv pin tsc latest # undo nenv unpin rome nenv unpin tsc ``` ### List nodejs versions ```sh nenv list-versions ``` ## Version detection The node version nenv uses is controlled by 1. The `engines.node` config field in the `package.json` which is parsed as a semver requirement. ```json { "name": "my project", "engines": { "node": "18" } } ``` 2. The `.node-version` file in the current or parent directories which contains the version string. ``` 19.4.0 ``` 3. The `NODE_VERSION` environment variable. 4. The default version set with `nenv default`. ## License GPL-3.0