Bader Nasser's Blog
ع

How to uninstall Node.js versions downloaded using nvm

Published on: Last updated on:

To uninstall unwanted node versions downloaded using nvm:

  • Open the terminal and run:
W=(16 17);WD=();V=$(nvm ls --no-colors --no-alias | cut -d'v' -f 2 | cut -d' ' -f 1 | tr '\n' ' ');for w in "${W[@]}";do WD+=("$(nvm version "$w" | cut -d'v' -f 2)");done;for v in ${V[@]};do if [[ " ${WD[*]} " =~ $v ]];then echo "Skipping v$v";else echo "Uninstalling v$v";nvm uninstall "$v";fi;done
  • Or:

    1. Add the following function to ~/.bash_profile or ~/.bashrc

      function uninstall_node_versions {
        local wantedVersions=('lts/*' node)
        # credit: https://stackoverflow.com/a/1951523
        local wantedDownloadedVersions=()
        local allVersions
        allVersions=$(nvm ls --no-colors --no-alias | cut -d'v' -f 2 | cut -d' ' -f 1 | tr '\n' ' ')
        for wantedVersion in "${wantedVersions[@]}"; do
          wantedDownloadedVersions+=("$(nvm version "${wantedVersion}" | cut -d'v' -f 2)")
        done
        echo "Wanted node versions:" "${wantedVersions[@]}"
        echo "Exact wanted node versions:" "${wantedDownloadedVersions[@]}"
        echo "All installed node versions:" "${allVersions[@]}"
        # shellcheck disable=SC2068
        for version in ${allVersions[@]}; do
          # credit: https://stackoverflow.com/a/15394738
          if [[ " ${wantedDownloadedVersions[*]} " =~ ${version} ]]; then
            echo "Skip uninstalling node ${version} ..."
          else
            echo "Uninstalling node v${version} ..."
            nvm uninstall "${version}"
          fi
        done
      }
    2. Open the terminal and run the function: uninstall_node_versions

    3. Enjoy!


All rights reserved © 2025

Developed by: Bader Nasser

3.13.0

Contact