nenv

Crates.ionenv
lib.rsnenv
version0.5.2
sourcesrc
created_at2023-01-23 09:32:21.211175
updated_at2023-02-05 18:57:53.391676
descriptionA low permission nodejs environment manager.
homepage
repositoryhttps://github.com/Trivernis/nenv
max_upload_size
id765681
size190,876
Julius Riegel (Trivernis)

documentation

README

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 <version>. Afterwards add the bin directory to your PATH variable.

On windows this should be C:\Users\<yourusername>\AppData\Roaming\nenv\bin. On linux this will be ~/.local/share/nenv/bin.

Usage

Install node versions

# 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

nenv default latest

Refresh installed binaries and upstream versions

nenv refresh

Pinning binaries to specific node versions

# 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

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.
{
  "name": "my project",
  "engines": {
    "node": "18"
  }
}
  1. The .node-version file in the current or parent directories which contains the version string.
19.4.0  
  1. The NODE_VERSION environment variable.
  2. The default version set with nenv default.

License

GPL-3.0

Commit count: 79

cargo fmt