|
|
|
@@ -1,6 +1,12 @@
|
|
|
|
<a href="https://github.com/nvm-sh/logos"><img alt="nvm project logo" src="https://raw.githubusercontent.com/nvm-sh/logos/HEAD/nvm-logo-color.svg" height="50" /></a>
|
|
|
|
<a href="https://github.com/nvm-sh/logos">
|
|
|
|
|
|
|
|
<picture>
|
|
|
|
|
|
|
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nvm-sh/logos/HEAD/nvm-logo-white.svg" />
|
|
|
|
|
|
|
|
<img src="https://raw.githubusercontent.com/nvm-sh/logos/HEAD/nvm-logo-color.svg" height="50" alt="nvm project logo" />
|
|
|
|
|
|
|
|
</picture>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
# Node Version Manager [][3] [][4] [](https://bestpractices.coreinfrastructure.org/projects/684)
|
|
|
|
|
|
|
|
|
|
|
|
# Node Version Manager [][3] [][4] [](https://bestpractices.coreinfrastructure.org/projects/684)
|
|
|
|
|
|
|
|
|
|
|
|
<!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` -->
|
|
|
|
<!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` -->
|
|
|
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
|
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
|
|
@@ -95,10 +101,10 @@ nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be i
|
|
|
|
|
|
|
|
|
|
|
|
To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
|
|
|
|
To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
|
|
|
|
```
|
|
|
|
```
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
|
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).
|
|
|
|
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).
|
|
|
|
@@ -120,6 +126,8 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta
|
|
|
|
|
|
|
|
|
|
|
|
- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available.
|
|
|
|
- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash'`
|
|
|
|
|
|
|
|
|
|
|
|
#### Troubleshooting on Linux
|
|
|
|
#### Troubleshooting on Linux
|
|
|
|
|
|
|
|
|
|
|
|
On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again.
|
|
|
|
On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again.
|
|
|
|
@@ -166,7 +174,7 @@ You can use a task:
|
|
|
|
```yaml
|
|
|
|
```yaml
|
|
|
|
- name: Install nvm
|
|
|
|
- name: Install nvm
|
|
|
|
ansible.builtin.shell: >
|
|
|
|
ansible.builtin.shell: >
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
|
|
|
|
args:
|
|
|
|
args:
|
|
|
|
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
|
|
|
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
|
|
|
```
|
|
|
|
```
|
|
|
|
@@ -228,7 +236,7 @@ If you have `git` installed (requires git v1.7.10+):
|
|
|
|
|
|
|
|
|
|
|
|
1. clone this repo in the root of your user profile
|
|
|
|
1. clone this repo in the root of your user profile
|
|
|
|
- `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm`
|
|
|
|
- `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm`
|
|
|
|
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.39.3`
|
|
|
|
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.39.4`
|
|
|
|
1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh`
|
|
|
|
1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh`
|
|
|
|
|
|
|
|
|
|
|
|
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
|
|
|
|
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
|
|
|
|
@@ -548,6 +556,8 @@ The contents of a `.nvmrc` file **must** be the `<version>` (as described by `nv
|
|
|
|
|
|
|
|
|
|
|
|
You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` maintainers. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new).
|
|
|
|
You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` maintainers. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can also use [`nvshim`](https://github.com/iamogbz/nvshim) to shim the `node`, `npm`, and `npx` bins to automatically use the `nvm` config in the current directory. `nvshim` is **not** supported by the `nvm` maintainers. Please [report issues to the `nvshim` team](https://github.com/iamogbz/nvshim/issues/new).
|
|
|
|
|
|
|
|
|
|
|
|
If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` maintainers. We are, however, accepting pull requests for more examples.
|
|
|
|
If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` maintainers. We are, however, accepting pull requests for more examples.
|
|
|
|
|
|
|
|
|
|
|
|
#### bash
|
|
|
|
#### bash
|
|
|
|
@@ -799,13 +809,13 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh
|
|
|
|
### Alpine Linux 3.13+
|
|
|
|
### Alpine Linux 3.13+
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
|
|
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Alpine Linux 3.5 - 3.12
|
|
|
|
### Alpine Linux 3.5 - 3.12
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
|
|
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
_Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._
|
|
|
|
_Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._
|
|
|
|
@@ -904,9 +914,9 @@ You have to make sure that the user directory name in `$HOME` and the user direc
|
|
|
|
To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548)
|
|
|
|
To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548)
|
|
|
|
|
|
|
|
|
|
|
|
[1]: https://github.com/nvm-sh/nvm.git
|
|
|
|
[1]: https://github.com/nvm-sh/nvm.git
|
|
|
|
[2]: https://github.com/nvm-sh/nvm/blob/v0.39.3/install.sh
|
|
|
|
[2]: https://github.com/nvm-sh/nvm/blob/v0.39.4/install.sh
|
|
|
|
[3]: https://app.travis-ci.com/nvm-sh/nvm
|
|
|
|
[3]: https://app.travis-ci.com/nvm-sh/nvm
|
|
|
|
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.39.3
|
|
|
|
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.39.4
|
|
|
|
[Urchin]: https://git.sdf.org/tlevine/urchin
|
|
|
|
[Urchin]: https://git.sdf.org/tlevine/urchin
|
|
|
|
[Fish]: https://fishshell.com
|
|
|
|
[Fish]: https://fishshell.com
|
|
|
|
|
|
|
|
|
|
|
|
@@ -991,7 +1001,7 @@ Now you should be able to use node as usual.
|
|
|
|
If you've encountered this error on WSL-2:
|
|
|
|
If you've encountered this error on WSL-2:
|
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
```sh
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
|
|
|
|
% Total % Received % Xferd Average Speed Time Time Time Current
|
|
|
|
% Total % Received % Xferd Average Speed Time Time Time Current
|
|
|
|
Dload Upload Total Spent Left Speed
|
|
|
|
Dload Upload Total Spent Left Speed
|
|
|
|
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com
|
|
|
|
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com
|
|
|
|
@@ -1012,7 +1022,7 @@ This could simply be solved by running this in your root directory:
|
|
|
|
sudo chattr +i /etc/resolv.conf
|
|
|
|
sudo chattr +i /etc/resolv.conf
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
This deletes your `resolve.conf` file thats automatically generated when u run WSL, creates a new file and puts `nameserver 8.8.8.8`, then creates a `wsl.conf` file and adds `[network]` and `generateResolveConf = false` to prevent auto generation of that file.
|
|
|
|
This deletes your `resolv.conf` file thats automatically generated when u run WSL, creates a new file and puts `nameserver 8.8.8.8`, then creates a `wsl.conf` file and adds `[network]` and `generateResolveConf = false` to prevent auto generation of that file.
|
|
|
|
|
|
|
|
|
|
|
|
You can check the contents of the file by running:
|
|
|
|
You can check the contents of the file by running:
|
|
|
|
|
|
|
|
|
|
|
|
|