added --upgrade-npm to install command

This commit is contained in:
dclayton 2015-12-08 19:50:13 -07:00
parent 8746344e02
commit ec7e553267
1 changed files with 37 additions and 11 deletions

26
nvm.sh
View File

@ -1463,6 +1463,7 @@ nvm() {
echo ' nvm --version Print out the latest released version of nvm' echo ' nvm --version Print out the latest released version of nvm'
echo ' nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available' echo ' nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available'
echo ' --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number>' echo ' --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number>'
echo ' --upgrade-npm=<version> When installing, upgrades NPM to the specified version'
echo ' nvm uninstall <version> Uninstall a version' echo ' nvm uninstall <version> Uninstall a version'
echo ' nvm use [--silent] <version> Modify PATH to use <version>. Uses .nvmrc if available' echo ' nvm use [--silent] <version> Modify PATH to use <version>. Uses .nvmrc if available'
echo ' nvm exec [--silent] <version> [<command>] Run <command> on <version>. Uses .nvmrc if available' echo ' nvm exec [--silent] <version> [<command>] Run <command> on <version>. Uses .nvmrc if available'
@ -1478,6 +1479,7 @@ nvm() {
echo ' nvm alias <name> <version> Set an alias named <name> pointing to <version>' echo ' nvm alias <name> <version> Set an alias named <name> pointing to <version>'
echo ' nvm unalias <name> Deletes the alias named <name>' echo ' nvm unalias <name> Deletes the alias named <name>'
echo ' nvm reinstall-packages <version> Reinstall global `npm` packages contained in <version> to current version' echo ' nvm reinstall-packages <version> Reinstall global `npm` packages contained in <version> to current version'
echo ' nvm upgrade-npm <version> Upgrades NPM to the specified version'
echo ' nvm unload Unload `nvm` from shell' echo ' nvm unload Unload `nvm` from shell'
echo ' nvm which [<version>] Display path to installed node version. Uses .nvmrc if available' echo ' nvm which [<version>] Display path to installed node version. Uses .nvmrc if available'
echo echo
@ -1568,6 +1570,7 @@ nvm() {
ADDITIONAL_PARAMETERS='' ADDITIONAL_PARAMETERS=''
local PROVIDED_REINSTALL_PACKAGES_FROM local PROVIDED_REINSTALL_PACKAGES_FROM
local REINSTALL_PACKAGES_FROM local REINSTALL_PACKAGES_FROM
local UPGRADE_NPM_VERSION
while [ $# -ne 0 ] while [ $# -ne 0 ]
do do
@ -1580,6 +1583,9 @@ nvm() {
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)" PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | command cut -c 22-)"
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
;; ;;
--upgrade-npm=*)
UPGRADE_NPM_VERSION="$(echo "$1" | command cut -c 15-)"
;;
*) *)
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1" ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
;; ;;
@ -1652,6 +1658,10 @@ nvm() {
fi fi
if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then
if [ ! -z "$UPGRADE_NPM_VERSION" ]; then
nvm upgrade-npm "$UPGRADE_NPM_VERSION"
fi
if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \ if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \
&& [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then
nvm reinstall-packages "$REINSTALL_PACKAGES_FROM" nvm reinstall-packages "$REINSTALL_PACKAGES_FROM"
@ -2166,6 +2176,18 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d'
command rm -f "$NVM_ALIAS_DIR/$2" command rm -f "$NVM_ALIAS_DIR/$2"
echo "Deleted alias $2" echo "Deleted alias $2"
;; ;;
"upgrade-npm" )
if [ $# -ne 2 ]; then
>&2 nvm help
return 127
fi
local NPM_VERSION
NPM_VERSION="$2"
echo "Upgrading npm version to $NPM_VERSION"
npm install -g "npm@$NPM_VERSION"
;;
"reinstall-packages" | "copy-packages" ) "reinstall-packages" | "copy-packages" )
if [ $# -ne 2 ]; then if [ $# -ne 2 ]; then
>&2 nvm help >&2 nvm help
@ -2199,8 +2221,11 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d'
LINKS="${NPMLIST##* //// }" LINKS="${NPMLIST##* //// }"
echo "Reinstalling global packages from $VERSION..." echo "Reinstalling global packages from $VERSION..."
if [ "$INSTALLS" != '' ]; then
echo "$INSTALLS" | command xargs npm install -g --quiet echo "$INSTALLS" | command xargs npm install -g --quiet
fi
if [ "$LINKS" != '' ]; then
echo "Linking global packages from $VERSION..." echo "Linking global packages from $VERSION..."
set -f; IFS=' set -f; IFS='
' # necessary to turn off variable expansion except for newlines ' # necessary to turn off variable expansion except for newlines
@ -2211,6 +2236,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | command grep -v "N/A" | command sed '/^$/d'
fi fi
done done
set +f; unset IFS # restore variable expansion in case $LINKS was empty set +f; unset IFS # restore variable expansion in case $LINKS was empty
fi
;; ;;
"clear-cache" ) "clear-cache" )
command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null command rm -f "$NVM_DIR/v*" "$(nvm_version_dir)" 2>/dev/null