Sy2n0
44e2590cdf
[Fix] sanitize NVM_AUTH_HEADER in wget path
2026-01-09 11:30:14 +09:00
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
35212c1346
[Fix] nvm_has_colors: also check if stdout is a terminal
2026-01-27 10:31:07 -08:00
Jordan Harband
9ba422e561
[Fix] nvm_strip_path: avoid gawk-specific RT variable for mawk compatibility
2026-01-26 22:33:58 -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
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
18e638e42b
[Fix] sh lacks -O; thanks shellcheck
2025-09-05 13:19:27 -07:00
Jordan Harband
977563e97d
v0.40.3
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Ubuntu-18.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Ubuntu-18.04) (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` / 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` / tests, on windows (push) Has been cancelled
2025-04-23 16:34:31 -07:00
Toni Viemerö
99352a64d2
[Fix] nvm_install_latest_npm: fix node version detection
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Ubuntu-18.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 12, Ubuntu-20.04) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Debian) (push) Has been cancelled
Tests on Windows: `nvm install` / WSL nvm install (script, 14, Ubuntu-18.04) (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` / 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` / tests, on windows (push) Has been cancelled
2025-04-09 08:16:05 +03:00
Jordan Harband
ffec9fec72
v0.40.2
...
New Stuff
- `install.sh`: add `$ZDOTDIR` to zsh search (#3458 )
Fixes
- `reinstall-packages`: do not reinstall corepack (#3544 )
- avoid bash-specific syntax (#3499 )
- `install-latest-npm`: npm v11 is out
- `nvm_install_latest_npm`: avoid unbound variable (#3447 )
- give a more helpful message when `lts` alias is mistakenly used (#3441 )
- `nvm ls`, `nvm alias`, `nvm install`: error when an LTS name is invalid
- `nvm_normalize_lts`: error when an LTS name is not lowercase (#3417 )
Documentation
- [readme] update link
- [readme] fix `--no-use` example (#3479 )
- [readme] update copyright notice (#3507 )
- [readme] note zsh-nvm's AUTO_USE option (#2670 )
- [readme] add note about reloading zshrc after editing (#3052 )
- [readme] Update shell profile file install notes (#2241 )
- [readme] add docker tips (#2318 )
- [readme] remove `avn` from readme (#3469 )
- [readme] fnm -> nvm.fish (#2541 )
Refactors
- prefer `case` over if/else chains
- combine `sed -e` invocations/arguments
Tests
- `nvm exec`/`nvm run`: add `--silent` tests (#1259 )
- [actions] release test needs git tags
- migrate `installation_iojs` test suite to GitHub Actions (#3476 )
- Migrate slow test suite from Travis CI (#3470 )
- temporarily skip this failing travis test to unblock progress
- [actions] TOC: use latest LTS node
- `install.sh`: clean up `nvm_detect_profile` tests
- `nvm_detect_profile`: refactor (#3467 )
- run urchin tests on pull requests (#3466 )
- update mocks
- ensure that unit tests use only mocked LTS names
- [actions] use `node/install` instead of `node/run`
Meta
- disable blank issues
- update issue template
- add DCO (#3456 )
- Rename .github/ISSUE_TEMPLATE.md to .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md (#3454 )
2025-03-11 13:39:40 -07:00
Jordan Harband
df9ac58f8b
[Fix] reinstall-packages: do not reinstall corepack
...
Fixes #3544
2025-03-11 13:16:58 -07:00
Jordan Harband
759f70f196
[Refactor] prefer case over if/else chains
2025-02-04 22:45:35 -08:00
Jordan Harband
06a9179309
[Refactor] combine sed -e invocations/arguments
2025-02-04 15:55:10 -08:00
Jordan Harband
19f452ba0f
[Fix] avoid bash-specific syntax
...
Fixes #3499
2024-12-19 22:21:09 -08:00
Jordan Harband
b9b0ea8020
[Fix] install-latest-npm: npm v11 is out
2024-12-16 10:03:18 -08:00
Jordan Harband
6b70c40f15
[Fix] nvm_install_latest_npm: avoid unbound variable
...
Fixes #3447
2024-10-22 22:02:01 -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
179d45050b
v0.40.1
2024-08-27 13:44:15 -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
df70535248
[Fix] nvm_auto: Fix bug introduced in c31a867
2024-08-21 10:54:19 -07:00
Jordan Harband
c31a867c46
[Fix] --save: avoid a conflict with set -e
...
Fixes #3405 .
2024-08-10 15:52:24 +12:00
Jordan Harband
a8c418558a
[Refactor] --save: clean up some usage
2024-08-20 16:21:45 -07:00
Jordan Harband
d5e2c92a25
[Fix] nvm_has_colors: avoid an aliased tput
...
Fixes #3413
2024-08-20 09:23:45 -07:00
Jordan Harband
4beab63631
[Fix] declare an unbound variable
...
Fixes #3402
2024-08-07 17:38:37 +12: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
deac4e0932
v0.40.0
2024-07-30 12:50:18 -07:00
Jordan Harband
ff1257e8e3
[Refactor] nvm_has_colors: also check the env var
2024-07-28 18:01:14 -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
Ally Summers
dd89af53f5
[patch] Fix issue where zsh global aliases would break nvm help
...
Fix issue with the color codes in the nvm help text where zsh global aliases would display an inline error in the nvm help text.
2024-07-26 03:35:55 +10: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
93277112ae
[Fix] install-latest-npm: npm ^8.7 breaks npm ls with file: deps
2024-07-26 09:16:03 -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
bab86d5de5
v0.39.7
2023-12-05 21:50:27 -08:00
Jordan Harband
d86f270438
[Fix] use \hash instead of command hash for zsh
...
See #3239 ; Fixes #3247 ; Closes #3246
2023-12-05 21:48:51 -08:00
Jordan Harband
c73009f503
v0.39.6
2023-12-04 22:03:25 -08: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
cc765cc000
[Fix] avoid overridden hash
...
Fixes #3239
2023-11-24 20:42:53 -08: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
1f970ccb7a
[Fix] nvm_normalize_lts: switch from expr to case
...
avoids `expr: warning: ^lts/-[1-9][0-9]*: using ^ as the first character of a basic regular expression is not portable; it is ignored`
2023-11-01 12:24:29 -07: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
8241287349
[New] aliases: skip leading blank lines in alias file
2023-10-23 14:06:19 -07:00