diff --git a/nvm.sh b/nvm.sh index 9eeede2ac6..aeab48bda9 100755 --- a/nvm.sh +++ b/nvm.sh @@ -700,10 +700,12 @@ nvm_ensure_version_installed() { nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed." fi nvm_err "" - if [ "${IS_VERSION_FROM_NVMRC}" != '1' ]; then - nvm_err "You need to run \`nvm install ${PROVIDED_VERSION}\` to install and use it." - else - nvm_err 'You need to run `nvm install` to install and use the node version specified in `.nvmrc`.' + if [ "${PROVIDED_VERSION}" = 'lts' ]; then + nvm_err '`lts` is not an alias - you may need to run `nvm install --lts` to install and `nvm use --lts` to use it.' + elif [ "${IS_VERSION_FROM_NVMRC}" != '1' ]; then + nvm_err "You need to run \`nvm install ${PROVIDED_VERSION}\` to install and use it." + else + nvm_err 'You need to run `nvm install` to install and use the node version specified in `.nvmrc`.' fi return 1 fi diff --git a/test/slow/nvm use/Running 'nvm use lts' shows actionable error b/test/slow/nvm use/Running 'nvm use lts' shows actionable error new file mode 100755 index 0000000000..ae7448dd2a --- /dev/null +++ b/test/slow/nvm use/Running 'nvm use lts' shows actionable error @@ -0,0 +1,19 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +# Deactivate any active node version +nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' + +# Attempt to use 'lts' without '--' and capture the error message +ERROR_OUTPUT=$(nvm use lts 2>&1) || true + +EXPECTED_ERROR='`lts` is not an alias - you may need to run `nvm install --lts` to install and `nvm use --lts` to use it.' + +# Check if the error message matches the expected output +echo "$ERROR_OUTPUT" | grep -q "$EXPECTED_ERROR" \ + || die "Expected error message not found. Got: $ERROR_OUTPUT"