Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f355b327d6 | ||
|
|
6fa92c82ca | ||
|
|
0899839b95 | ||
|
|
73a513c389 | ||
|
|
04ad1b528c | ||
|
|
1c8e59130f | ||
|
|
28bc2fd991 | ||
|
|
100861d529 | ||
|
|
1eca354233 | ||
|
|
0a4e6f2b70 | ||
|
|
94a72ae217 |
12
.github/FUNDING.yml
vendored
Normal file
12
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: [ljharb]
|
||||||
|
patreon: # Replace with a single Patreon username
|
||||||
|
open_collective: # Replace with a single Open Collective username
|
||||||
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
|
tidelift: npm/nvm
|
||||||
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
liberapay: # Replace with a single Liberapay username
|
||||||
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
|
otechie: # Replace with a single Otechie username
|
||||||
|
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||||
22
.github/ISSUE_TEMPLATE.md
vendored
22
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
<!-- Thank you for being interested in nvm! Please help us by filling out the following form if you‘re having trouble. If you have a feature request, or some other question, please feel free to clear out the form. Thanks! -->
|
<!-- Thank you for being interested in nvm! Please help us by filling out the following form if you‘re having trouble. If you have a feature request, or some other question, please feel free to clear out the form. Thanks! -->
|
||||||
|
|
||||||
- Operating system and version:
|
#### Operating system and version:
|
||||||
|
|
||||||
- `nvm debug` output:
|
#### `nvm debug` output:
|
||||||
<details>
|
<details>
|
||||||
<!-- do not delete the following blank line -->
|
<!-- do not delete the following blank line -->
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
- `nvm ls` output:
|
#### `nvm ls` output:
|
||||||
<details>
|
<details>
|
||||||
<!-- do not delete the following blank line -->
|
<!-- do not delete the following blank line -->
|
||||||
|
|
||||||
@@ -21,18 +21,20 @@
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
- How did you install `nvm`? (e.g. install script in readme, Homebrew):
|
#### How did you install `nvm`?
|
||||||
|
<!-- (e.g. install script in readme, Homebrew) -->
|
||||||
|
|
||||||
- What steps did you perform?
|
#### What steps did you perform?
|
||||||
|
|
||||||
- What happened?
|
#### What happened?
|
||||||
|
|
||||||
- What did you expect to happen?
|
#### What did you expect to happen?
|
||||||
|
|
||||||
- Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`?
|
#### Is there anything in any of your profile files that modifies the `PATH`?
|
||||||
|
<!-- (e.g. `.bashrc`, `.bash_profile`, `.zshrc`, etc) -->
|
||||||
|
|
||||||
<!-- if this does not apply, please delete this section -->
|
<!-- Please remove the following section if it does not apply to you -->
|
||||||
- If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out?
|
#### If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out?
|
||||||
<details>
|
<details>
|
||||||
<!-- do not delete the following blank line -->
|
<!-- do not delete the following blank line -->
|
||||||
|
|
||||||
|
|||||||
55
README.md
55
README.md
@@ -1,4 +1,4 @@
|
|||||||
# Node Version Manager [][3] [][4] [](https://bestpractices.coreinfrastructure.org/projects/684)
|
# Node Version Manager [][3] [][4] [](https://bestpractices.coreinfrastructure.org/projects/684)
|
||||||
|
|
||||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
@@ -44,27 +44,24 @@
|
|||||||
|
|
||||||
### Install & Update script
|
### Install & Update script
|
||||||
|
|
||||||
To **install** or **update** nvm, you can use the [install script][2] using cURL:
|
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.35.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
|
||||||
|
```
|
||||||
|
```sh
|
||||||
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
or Wget:
|
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and adds the source lines from the snippet below to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).
|
||||||
|
|
||||||
```sh
|
|
||||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).</sub>
|
|
||||||
|
|
||||||
<sub>**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there.</sub>
|
|
||||||
|
|
||||||
|
<a id="profile_snippet"></a>
|
||||||
```sh
|
```sh
|
||||||
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
|
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<sub>**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there.</sub>
|
||||||
|
|
||||||
**Note:** You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it.
|
**Note:** You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it.
|
||||||
|
|
||||||
You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables.
|
You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables.
|
||||||
@@ -72,24 +69,18 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta
|
|||||||
|
|
||||||
<sub>*NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.*</sub>
|
<sub>*NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.*</sub>
|
||||||
|
|
||||||
**Note:** On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type:
|
**Note:** 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.
|
||||||
|
|
||||||
```sh
|
|
||||||
command -v nvm
|
|
||||||
```
|
|
||||||
|
|
||||||
simply close your current terminal, open a new terminal, and try verifying again.
|
|
||||||
|
|
||||||
**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782))
|
**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782))
|
||||||
|
|
||||||
**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:-
|
**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:
|
||||||
|
|
||||||
- your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again
|
- Your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again
|
||||||
- you might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry.
|
- You might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry.
|
||||||
|
|
||||||
If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code:
|
If the above doesn't fix the problem, you may try the following:
|
||||||
|
- Open your `.bash_profile` (or `~/.zshrc`, `~/.profile`, or `~/.bashrc`) and add the following line of code: `source ~/<your_profile_file>`. E.g. `source ~/.bashrc` or `source ~/.zshrc`.
|
||||||
`source ~/.bashrc`
|
- If the above don't work, try adding the [snippet from the install section](#profile_snippet) that finds the correct nvm directory and loads nvm, to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).
|
||||||
|
|
||||||
- For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576)
|
- For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576)
|
||||||
|
|
||||||
@@ -99,7 +90,7 @@ If the above doesn't fix the problem, open your `.bash_profile` and add the foll
|
|||||||
```
|
```
|
||||||
- name: nvm
|
- name: nvm
|
||||||
shell: >
|
shell: >
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
|
||||||
args:
|
args:
|
||||||
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
||||||
```
|
```
|
||||||
@@ -158,7 +149,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.35.0`
|
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.35.2`
|
||||||
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:
|
||||||
@@ -635,7 +626,7 @@ set -e
|
|||||||
|
|
||||||
## Installing nvm on Alpine Linux
|
## Installing nvm on Alpine Linux
|
||||||
|
|
||||||
In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides pre-these compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al).
|
In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides these pre-compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al).
|
||||||
|
|
||||||
Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [BusyBox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that.
|
Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [BusyBox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that.
|
||||||
|
|
||||||
@@ -645,7 +636,7 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh
|
|||||||
|
|
||||||
```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.35.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries.
|
The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries.
|
||||||
@@ -731,8 +722,8 @@ sudo chmod ugo-x /usr/libexec/path_helper
|
|||||||
More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x).
|
More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x).
|
||||||
|
|
||||||
[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.35.0/install.sh
|
[2]: https://github.com/nvm-sh/nvm/blob/v0.35.2/install.sh
|
||||||
[3]: https://travis-ci.org/nvm-sh/nvm
|
[3]: https://travis-ci.org/nvm-sh/nvm
|
||||||
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.0
|
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.2
|
||||||
[Urchin]: https://github.com/scraperwiki/urchin
|
[Urchin]: https://github.com/scraperwiki/urchin
|
||||||
[Fish]: http://fishshell.com
|
[Fish]: http://fishshell.com
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ nvm_install_dir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_latest_version() {
|
nvm_latest_version() {
|
||||||
echo "v0.35.0"
|
echo "v0.35.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_profile_is_bash_or_zsh() {
|
nvm_profile_is_bash_or_zsh() {
|
||||||
|
|||||||
48
nvm.sh
48
nvm.sh
@@ -223,13 +223,29 @@ nvm_install_latest_npm() {
|
|||||||
|
|
||||||
local NVM_IS_6_OR_ABOVE
|
local NVM_IS_6_OR_ABOVE
|
||||||
NVM_IS_6_OR_ABOVE=0
|
NVM_IS_6_OR_ABOVE=0
|
||||||
|
local NVM_IS_6_2_OR_ABOVE
|
||||||
|
NVM_IS_6_2_OR_ABOVE=0
|
||||||
if [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.0.0; then
|
if [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.0.0; then
|
||||||
NVM_IS_6_OR_ABOVE=1
|
NVM_IS_6_OR_ABOVE=1
|
||||||
|
if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.2.0; then
|
||||||
|
NVM_IS_6_2_OR_ABOVE=1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || (\
|
local NVM_IS_9_OR_ABOVE
|
||||||
[ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}" \
|
NVM_IS_9_OR_ABOVE=0
|
||||||
); then
|
local NVM_IS_9_3_OR_ABOVE
|
||||||
|
NVM_IS_9_3_OR_ABOVE=0
|
||||||
|
if [ $NVM_IS_6_2_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 9.0.0; then
|
||||||
|
NVM_IS_9_OR_ABOVE=1
|
||||||
|
if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 9.3.0; then
|
||||||
|
NVM_IS_9_3_OR_ABOVE=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || {
|
||||||
|
[ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}"; \
|
||||||
|
}; then
|
||||||
nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`'
|
nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`'
|
||||||
$NVM_NPM_CMD install -g npm@5.3
|
$NVM_NPM_CMD install -g npm@5.3
|
||||||
elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then
|
elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then
|
||||||
@@ -238,6 +254,12 @@ nvm_install_latest_npm() {
|
|||||||
elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then
|
elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then
|
||||||
nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`'
|
nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`'
|
||||||
$NVM_NPM_CMD install -g npm@5
|
$NVM_NPM_CMD install -g npm@5
|
||||||
|
elif \
|
||||||
|
{ [ $NVM_IS_6_OR_ABOVE -eq 1 ] && [ $NVM_IS_6_2_OR_ABOVE -eq 0 ]; } \
|
||||||
|
|| { [ $NVM_IS_9_OR_ABOVE -eq 1 ] && [ $NVM_IS_9_3_OR_ABOVE -eq 0 ]; } \
|
||||||
|
; then
|
||||||
|
nvm_echo '* `npm` `v6.9` is the last version that works on `node` `v6.0.x`, `v6.1.x`, `v9.0.x`, `v9.1.x`, or `v9.2.x`'
|
||||||
|
$NVM_NPM_CMD install -g npm@6.9
|
||||||
else
|
else
|
||||||
nvm_echo '* Installing latest `npm`; if this does not work on your node version, please report a bug!'
|
nvm_echo '* Installing latest `npm`; if this does not work on your node version, please report a bug!'
|
||||||
$NVM_NPM_CMD install -g npm
|
$NVM_NPM_CMD install -g npm
|
||||||
@@ -2165,7 +2187,7 @@ nvm_die_on_prefix() {
|
|||||||
if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then
|
if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then
|
||||||
local NVM_CONFIG_VALUE
|
local NVM_CONFIG_VALUE
|
||||||
eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\""
|
eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\""
|
||||||
if [ -n "${NVM_CONFIG_VALUE-}" ]; then
|
if [ -n "${NVM_CONFIG_VALUE-}" ] && ! nvm_tree_contains_path "${NVM_DIR}" "${NVM_CONFIG_VALUE}"; then
|
||||||
nvm deactivate >/dev/null 2>&1
|
nvm deactivate >/dev/null 2>&1
|
||||||
nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\""
|
nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\""
|
||||||
nvm_err "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it."
|
nvm_err "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it."
|
||||||
@@ -2909,6 +2931,10 @@ nvm() {
|
|||||||
VERSION="$(nvm_version "${PROVIDED_VERSION}")"
|
VERSION="$(nvm_version "${PROVIDED_VERSION}")"
|
||||||
fi
|
fi
|
||||||
unset NVM_RC_VERSION
|
unset NVM_RC_VERSION
|
||||||
|
if [ -z "${VERSION}" ]; then
|
||||||
|
nvm_err 'Please see `nvm --help` or https://github.com/nvm-sh/nvm#nvmrc for more information.'
|
||||||
|
return 127
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
VERSION="$(nvm_match_version "${PROVIDED_VERSION}")"
|
VERSION="$(nvm_match_version "${PROVIDED_VERSION}")"
|
||||||
fi
|
fi
|
||||||
@@ -3346,6 +3372,13 @@ nvm() {
|
|||||||
local NVM_NODE_PREFIX
|
local NVM_NODE_PREFIX
|
||||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||||
|
local NVM_ALIAS_EXISTS
|
||||||
|
NVM_ALIAS_EXISTS=0
|
||||||
|
if [ -f "${NVM_ALIAS_DIR}/${1-}" ]; then
|
||||||
|
NVM_ALIAS_EXISTS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NVM_ALIAS_EXISTS -eq 0 ]; then
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" | "system")
|
"stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" | "system")
|
||||||
nvm_err "${1-} is a default (built-in) alias and cannot be deleted."
|
nvm_err "${1-} is a default (built-in) alias and cannot be deleted."
|
||||||
@@ -3353,7 +3386,10 @@ nvm() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
[ ! -f "${NVM_ALIAS_DIR}/${1-}" ] && nvm_err "Alias ${1-} doesn't exist!" && return
|
nvm_err "Alias ${1-} doesn't exist!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
local NVM_ALIAS_ORIGINAL
|
local NVM_ALIAS_ORIGINAL
|
||||||
NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")"
|
NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")"
|
||||||
command rm -f "${NVM_ALIAS_DIR}/${1}"
|
command rm -f "${NVM_ALIAS_DIR}/${1}"
|
||||||
@@ -3464,7 +3500,7 @@ nvm() {
|
|||||||
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
|
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
|
||||||
;;
|
;;
|
||||||
"--version")
|
"--version")
|
||||||
nvm_echo '0.35.0'
|
nvm_echo '0.35.2'
|
||||||
;;
|
;;
|
||||||
"unload")
|
"unload")
|
||||||
nvm deactivate >/dev/null 2>&1
|
nvm deactivate >/dev/null 2>&1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nvm",
|
"name": "nvm",
|
||||||
"version": "0.35.0",
|
"version": "0.35.2",
|
||||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||||
"directories": {
|
"directories": {
|
||||||
"test": "test"
|
"test": "test"
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
OUTPUT="$(nvm unalias node 2>&1)"
|
||||||
|
EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted."
|
||||||
|
[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
||||||
|
|
||||||
|
nvm alias node stable || die '`nvm alias node stable` failed'
|
||||||
|
|
||||||
|
nvm unalias node || die '`nvm unalias node` failed'
|
||||||
|
|
||||||
|
OUTPUT="$(nvm unalias node 2>&1)"
|
||||||
|
EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted."
|
||||||
|
[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
||||||
@@ -10,9 +10,10 @@ nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is
|
|||||||
nvm use 0.10.28
|
nvm use 0.10.28
|
||||||
(cd test-npmlink && npm link)
|
(cd test-npmlink && npm link)
|
||||||
|
|
||||||
EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js"
|
EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo"
|
||||||
|
EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo@1"
|
||||||
|
|
||||||
echo "$EXPECTED_PACKAGES yo@1" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet
|
echo "$EXPECTED_PACKAGES_INSTALL" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet
|
||||||
|
|
||||||
get_packages() {
|
get_packages() {
|
||||||
npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs
|
npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs
|
||||||
@@ -24,7 +25,7 @@ ORIGINAL_PACKAGES=$(get_packages)
|
|||||||
nvm reinstall-packages 0.10.28
|
nvm reinstall-packages 0.10.28
|
||||||
FINAL_PACKAGES=$(get_packages)
|
FINAL_PACKAGES=$(get_packages)
|
||||||
|
|
||||||
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES yo" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
||||||
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
||||||
|
|
||||||
[ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink"
|
[ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink"
|
||||||
|
|||||||
Reference in New Issue
Block a user