mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-09-26 19:41:34 +00:00
nvm use
: perfect pre-npm-config env var checking
This commit is contained in:
32
nvm.sh
32
nvm.sh
@@ -2111,19 +2111,35 @@ nvm_die_on_prefix() {
|
||||
return 2
|
||||
fi
|
||||
|
||||
if [ -n "${PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$PREFIX" >/dev/null 2>&1); then
|
||||
# npm first looks at $PREFIX (case-sensitive)
|
||||
# we do not bother to test the value here; if this env var is set, unset it to continue.
|
||||
if [ -n "${PREFIX-}" ]; then
|
||||
nvm deactivate >/dev/null 2>&1
|
||||
nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"$PREFIX\""
|
||||
nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"${PREFIX}\""
|
||||
nvm_err 'Run `unset PREFIX` to unset it.'
|
||||
return 3
|
||||
fi
|
||||
|
||||
if [ -n "${NPM_CONFIG_PREFIX-}" ] && ! (nvm_tree_contains_path "$NVM_DIR" "$NPM_CONFIG_PREFIX" >/dev/null 2>&1); then
|
||||
nvm deactivate >/dev/null 2>&1
|
||||
nvm_err "nvm is not compatible with the \"NPM_CONFIG_PREFIX\" environment variable: currently set to \"$NPM_CONFIG_PREFIX\""
|
||||
nvm_err 'Run `unset NPM_CONFIG_PREFIX` to unset it.'
|
||||
return 4
|
||||
elif ! nvm_has 'npm'; then
|
||||
# npm normalizes NPM_CONFIG_-prefixed env vars
|
||||
# https://github.com/npm/npmconf/blob/22827e4038d6eebaafeb5c13ed2b92cf97b8fb82/npmconf.js#L331-L348
|
||||
# https://github.com/npm/npm/blob/5e426a78ca02d0044f8dd26e0c5f881217081cbd/lib/config/core.js#L343-L359
|
||||
#
|
||||
# here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors
|
||||
# until none are left.
|
||||
local NVM_NPM_CONFIG_PREFIX_ENV
|
||||
NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')"
|
||||
if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then
|
||||
local NVM_CONFIG_VALUE
|
||||
eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\""
|
||||
if [ -n "${NVM_CONFIG_VALUE-}" ]; then
|
||||
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 "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it."
|
||||
return 4
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! nvm_has 'npm'; then
|
||||
return
|
||||
fi
|
||||
|
||||
|
Reference in New Issue
Block a user