Peter Dave Hello
5533699ec5
Improve uninstall error message for missing versions
...
Include the requested version in the uninstall error output when
the target is not installed.
Add a fast test to lock the behavior.
Close #3767
2026-01-30 00:04:01 +08:00
Peter Dave Hello
29a652f90f
[patch] show system Node.js version in nvm ls
...
Normalize `nvm_version` output when `nvm_ls` returns "system vX" so alias and .nvmrc resolutions treat system correctly.
Add fast tests for system alias behavior in `nvm ls`, `nvm use`, and `nvm which`.
2026-01-25 18:19:50 +08:00
Jordan Harband
4c3edc5e56
[actions] migrate Travis CI tests to GitHub Actions
Tests on Windows: `nvm install` / WSL nvm install (, 16, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 18, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 21, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, --lts, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 10, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 11, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 16, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 18, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 21, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 18, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 18, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 21, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 21, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, --lts, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 10, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 11, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 12, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 14, Alpine) (push) Has been cancelled
Tests: shellcheck / shellcheck (push) Has been cancelled
Tests: `nvm install-latest-npm` / nvm install-latest-npm (push) Has been cancelled
Tests: nvm install with set -e / test (push) Has been cancelled
Tests: nvm install with set -e / finisher (push) Has been cancelled
Tests: fast / all fast tests (push) Has been cancelled
Tests: installation_iojs / all installation_iojs tests (push) Has been cancelled
Tests: installation_node / all installation_node tests (push) Has been cancelled
Tests: xenial / all xenial tests (push) Has been cancelled
urchin tests / all test suites, all shells (push) Has been cancelled
Tests on Windows: `nvm install` / tests, on windows (push) Has been cancelled
2026-01-27 10:31:07 -08:00
Jordan Harband
35212c1346
[Fix] nvm_has_colors: also check if stdout is a terminal
2026-01-27 10:31:07 -08:00
Jordan Harband
d2f93c1c8e
[Tests] mock node in nvm_die_on_prefix test
2026-01-26 22:34:24 -08:00
Jordan Harband
f9dbad9832
[Tests] clean up .nvmrc after nvm-exec test
2026-01-26 22:34:07 -08:00
Jordan Harband
c451e7a4c8
[Tests] set $_ before sourcing nvm.sh in fast tests
...
nvm.sh uses `NVM_SCRIPT_SOURCE="$_"` to detect its source location.
Adding `: nvm.sh` before each source line ensures `$_` is set correctly, preventing breakage when the previous command (e.g., `set -ex`) overwrites it.
2026-01-26 21:41:57 -08:00
Jordan Harband
38ffc713a7
[Fix] nvm_get_default_packages: use portable awk patterns
...
Replace POSIX `[[:space:]]` character class with `[ \t]` for
mawk compatibility on Ubuntu 16.04.
2026-01-26 16:59:11 -08:00
Jordan Harband
aa1d829102
[Fix] nvm_install_source: explicitly set SHELL=/bin/sh for make
...
Old Node.js versions have Makefiles with unquoted glob patterns like
`rm -f *.o` that fail in zsh's strict glob mode. By passing
SHELL=/bin/sh to make, we ensure POSIX-compliant shell behavior
regardless of what shell nvm is running in.
2026-01-26 15:07:01 -08:00
Wes Todd
ec8906b284
[Fix] install.sh: do not log when user has requested no profile modifications
...
Tests on Windows: `nvm install` / WSL nvm install (script, 18, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 16, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 16, Ubuntu-18.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 16, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 18, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 18, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 21, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 21, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, --lts, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 10, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 11, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 12, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 14, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 16, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 18, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (, 21, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, --lts, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 10, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 11, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 16, Alpine) (push) Has been cancelled
Tests on Windows: `nvm install` / tests, on windows (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 21, Alpine) (push) Has been cancelled
Tests: shellcheck / shellcheck (push) Has been cancelled
Tests: `nvm install-latest-npm` / nvm install-latest-npm (push) Has been cancelled
Tests: nvm install with set -e / test (push) Has been cancelled
Tests: nvm install with set -e / finisher (push) Has been cancelled
urchin tests / all test suites, all shells (push) Has been cancelled
[Tests] `install.sh`: add tests for PROFILE=/dev/null profile skip
Verify that when PROFILE="/dev/null" is set:
- The "Profile not found" warning is suppressed
- Profile modification is skipped as expected
Co-authored-by: Wes Todd <wes@wesleytodd.com >
Co-authored-by: Jordan Harband <ljharb@gmail.com >
2019-12-05 19:30:26 -08:00
Bark
01a8749d7f
[Fix] nvm exec: Do a version check on nvm-exec
...
This check would display a message in case the `.nvmrc` version is not installed, and would not alter the output otherwise.
2024-03-06 16:03:10 +02:00
Noritaka Kobayashi
4d364c2e7b
[readme] fix typo
2025-10-18 10:28:48 +09:00
Rahul Beniwal
81f13638d7
[Fix] Reject bare LTS codenames in nvm install
...
Previously, `nvm install Argon` would succeed by matching the LTS name
in the version description (e.g., "v4.9.1 (Latest LTS: Argon)"), but
`nvm uninstall Argon` would fail because "Argon" is not a valid alias or not a valid version.
Changes:
- Added pattern matching check in nvm_remote_version (nvm.sh:785-791)
- Skips check for implicit aliases (node, stable, etc.) to preserve
existing functionality
- Added unit tests to verify LTS names are rejected while version
numbers still work
After this fix:
- `nvm install Argon` → fails (use `nvm install lts/argon` instead)
- `nvm install 4` → still works
- `nvm install node` → still works
- `nvm install lts/argon` → still works
This makes install and uninstall behavior consistent.
Fixes #3474 .
2025-11-24 21:57:39 +05:30
Jordan Harband
26066c10f4
[Fix] prevent sed errors when pattern contains #
...
When `.nvmrc` or alias files contained comments (lines with `#`),
the `#` character could end up in the search pattern passed to sed,
causing "unterminated regular expression" errors because `#` is
used as the sed address delimiter.
This commit fixes the issue in two places:
1. `nvm_alias`: Strip comments from alias file contents before
returning them, and trim trailing whitespace
2. `nvm_ls`: Escape `#` characters in SEARCH_PATTERN so they're
treated as literal characters in the sed address
Fixes #3761
2026-01-19 22:58:43 -08:00
Jordan Harband
df9ac58f8b
[Fix] reinstall-packages: do not reinstall corepack
...
Fixes #3544
2025-03-11 13:16:58 -07:00
Atsushi Yamamoto
9f520c97db
[Tests] nvm exec/nvm run: add --silent tests
...
Co-authored-by: Atsushi Yamamoto <yamaatsushi927@gmail.com >
Co-authored-by: Jordan Harband <ljharb@gmail.com >
2016-10-11 23:43:10 -07:00
Jordan Harband
1d39e35bd3
[Tests] temporarily skip this failing travis test to unblock progress
2025-02-03 10:50:19 -08:00
Jordan Harband
0641363102
[Tests] install.sh: clean up nvm_detect_profile tests
2024-11-08 10:52:41 +00:00
Jordan Harband
9659af6c16
[Tests] nvm_detect_profile: refactor
2024-11-12 13:31:36 -08:00
menaechmi
abd02e5aae
[Fix] install.sh: fix failing install tests ( #3458 )
2024-11-12 11:57:02 -06:00
menaechmi
cd22c84026
[New] install.sh: add $ZDOTDIR to zsh search
...
Fixes #3128
2024-11-06 16:53:58 -06:00
Jordan Harband
1be4257e96
[Tests] update mocks
2024-10-31 14:23:36 -07:00
Jordan Harband
51ea809d63
[Tests] ensure that unit tests use only mocked LTS names
2024-10-30 23:41:50 -07:00
Reetik Rajan
5dc31ac51b
[patch] give a more helpful message when lts alias is mistakenly used
2024-10-05 09:21:42 +05:30
Jordan Harband
da2720a429
[Fix] nvm ls, nvm alias, nvm install: error when an LTS name is invalid
2024-09-04 13:55:11 -07:00
Jordan Harband
9fb9dec710
[Fix] nvm_normalize_lts: error when an LTS name is not lowercase
...
Fixes #3417
2024-09-04 13:54:41 -07:00
Jordan Harband
9a28dbd394
[actions] use node/install instead of node/run
2024-08-28 11:28:52 -07:00
Jordan Harband
ff7634577b
[Tests] fix broken tests exposed by 863bd63
...
Leaves 2 non-executable, + some TODOs
2024-08-27 12:46:40 -07:00
Jordan Harband
0ce8f5a52f
[Fix] nvm_download: ensure all args are quoted
...
Fixes #3411 .
2024-08-20 22:33:38 -07:00
Jordan Harband
863bd63cfa
[Tests] set proper permissions on test files
2024-08-23 17:23:12 -07:00
Jordan Harband
0d53381666
[Tests] move sourcing suite to GHA
2024-08-22 13:30:55 -07:00
Jordan Harband
df70535248
[Fix] nvm_auto: Fix bug introduced in c31a867
2024-08-21 10:54:19 -07:00
Jordan Harband
14acd3dcdd
[Fix] nvm install -b: do not attempt to download source on a failed binary download with -b
...
Fixes #3399
2024-08-01 10:35:37 -07:00
Jordan Harband
271720ebfc
[Fix] nvm install -b: when no binary is available, fail and output a clear message
2024-08-01 13:57:22 -07:00
Jordan Harband
423ee82b4c
[Tests] fix nvm ls-remote unit test
2024-08-01 10:22:28 -07:00
Jordan Harband
87a709741f
[Fix] nvm_get_default_packages: use awk for more reliable file processing
...
See db19450caa
Fixes #3382
2024-07-28 10:02:08 -07:00
Martin
f439acda4a
[New] nvm use/nvm install: add --save option
...
Fixes #2849 .
Co-authored-by: Martin <maartin00000@gmail.com >
Co-authored-by: Jordan Harband <ljharb@gmail.com >
2022-08-29 16:01:36 +01:00
David Welch
bd090ef7f8
[New] Add support for NVM_AUTH_HEADER env var
...
Closes #3366
Co-authored-by: David Welch <david@davidwelch.co >
Co-authored-by: Andre Kradolfer <narfdre@gmail.com >
2024-06-21 08:55:22 -06:00
Jordan Harband
4c7d899447
[Tests] ignore travis-ci env vars; improve debug output
2024-07-26 12:04:07 -07:00
Jordan Harband
e597bb208e
[Tests] use a better JSON parsing implementation
2024-06-10 11:33:12 -07:00
Jordan Harband
29dce5edfd
[New] allow .nvmrc files to support comments
...
In theory, `npx nvmrc` can now be used to validate an `.nvmrc` file that `nvm` will support. Allowances have been made for future extensibility, and aliases may no longer contain a `#`.
Fixes #3336 . Closes #2288 .
Co-authored-by: Jordan Harband <ljharb@gmail.com >
Co-authored-by: Yash Singh <saiansh2525@gmail.com >
2024-06-07 10:13:00 -07:00
Jordan Harband
b1fa143dd8
[Fix] nvm_get_mirror: ensure only a valid URL is allowed
2023-12-02 14:44:46 -08:00
Jordan Harband
4bdd57ba0f
[Fix] install.sh: when NVM_INSTALL_GITHUB_REPO is set, issue a warning
...
This should only annoy those testing their PRs; real users should never set this env var
2023-11-02 21:10:09 -07:00
Jordan Harband
d02ddcac2c
[Fix] nvm_get_mirror: disallow some non-URL characters
...
This should be improved in the future, but is fine for now
2023-11-01 21:01:28 -07:00
Andrius Solopovas
ef7fc2f2c0
[Fix] nvm_get_arch: proper value for alpine linux
2023-09-30 23:54:11 +01:00
Jordan Harband
6743aef70c
[New] nvm_resolve_alias: only resolve one line of a multiline alias file
2023-10-23 14:41:14 -07:00
Jordan Harband
10cdda081f
[Tests] update test mocks (new LTS, iron)
2023-10-25 15:39:12 -07:00
Jordan Harband
8241287349
[New] aliases: skip leading blank lines in alias file
2023-10-23 14:06:19 -07:00
Jordan Harband
bfce5889f7
[Test] update test mocks
2023-10-23 14:53:39 -07:00
zhangdiandian
1b102ab9a6
[Tests] fix filename typo
...
Signed-off-by: zhangdiandian <1635468471@qq.com >
2023-10-09 07:31:04 +00:00