NeuroAgent

Complete Guide: Uninstall & Reinstall Node.js on Mac

Learn how to completely uninstall Node.js, npm, and NVM from Mac OS X and perform a clean reinstall. Fix version conflicts and restore proper functionality with our step-by-step guide.

Question

How do I completely uninstall Node.js and reinstall from scratch on Mac OS X?

I’m experiencing a persistent issue where my Node.js version remains at v0.6.1-pre despite attempts to update it using Homebrew and NVM. When I check my Node version with node -v, it shows v0.6.1-pre. However, NVM shows v0.6.19 as installed and current in the same terminal session.

After restarting my bash terminal, NVM shows:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

I’ve tried the following troubleshooting steps:

  • Using Homebrew to update and install Node (brew update and brew install node)
  • Deleting the “node” directory in /usr/local/include
  • Deleting the “node” and “node_modules” directories in /usr/local/lib
  • Following instructions to uninstall and reinstall npm

Despite these attempts, the Node version remains outdated, and I’m unable to install libraries like “zipstream” that require a newer version.

Ideally, I’d like to completely uninstall Node.js, npm, and NVM, and then reinstall the entire stack from scratch on my system. How can I achieve this clean installation?

NeuroAgent

To completely uninstall Node.js and reinstall from scratch on Mac OS X, you’ll need to remove all traces of Node.js, npm, and NVM from both system directories and your user profile, then reinstall the entire stack cleanly. This involves using Homebrew removal commands, manually deleting residual files, cleaning your shell configuration, and removing NVM completely before doing a fresh installation of the latest Node.js version.


Contents


Understanding the Problem

Your issue with conflicting Node.js versions (v0.6.1-pre vs v0.6.19) is a classic PATH configuration problem. When you have multiple Node.js installations and NVM set up, your system can get confused about which executable to use. The version shown depends on the order of directories in your PATH environment variable.

Key Insight: The which node command will show you exactly which Node.js executable your terminal is currently using, while nvm ls only shows versions managed by NVM.

According to the BrowserStack guide, “Edit the Path variable and remove any entries containing nvm” to resolve such conflicts. This suggests your PATH contains both system Node.js and NVM-managed Node.js in conflicting orders.


Complete Uninstallation Process

Step 1: Identify All Node.js Installations

First, determine where your Node.js installations are located:

bash
which node
which nodejs
which npm

These commands will show you the actual paths to your executables, helping you understand what needs to be removed.

Step 2: Remove Homebrew Installation (if applicable)

If you installed Node.js using Homebrew, as recommended by the Stack Overflow guide:

bash
brew uninstall node --force  # Force removal of all versions
brew cleanup

Step 3: Remove System-Wide Node.js Files

Manually delete all Node.js related files from system directories:

bash
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/include/node
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/lib/dtrace/node.d

As mentioned in the BrowserStack guide, these commands “remove system-wide residual files and directories related to Node.js and npm.”

Step 4: Remove NVM Completely

To fully remove NVM and all its traces:

  1. First, uninstall all Node.js versions managed by NVM:
bash
nvm ls  # List all installed versions
nvm uninstall <version>  # Remove each version one by one
  1. Remove NVM itself:
bash
rm -rf ~/.nvm
  1. Clean your shell configuration files:
bash
# For bash users
nano ~/.bash_profile
# For zsh users (default on recent macOS)
nano ~/.zshrc

Remove any lines containing NVM configuration, typically:

bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Step 5: Clean User-Specific Node.js Files

Remove all user-specific Node.js and npm data:

bash
rm -rf ~/.npm
rm -rf ~/.node-gyp
rm -rf ~/.nodereplhistory
rm -rf ~/.config/configstore

Reinstalling Node.js from Scratch

Method 1: Using Homebrew (Recommended)

The MacPaw guide recommends this approach for clean installations:

bash
brew update
brew install node

This will install the latest stable version of Node.js and npm.

Method 2: Using NVM (Alternative)

If you prefer using NVM for version management:

bash
# Install NVM first
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Restart your terminal or run:
source ~/.bash_profile  # or source ~/.zshrc

# Install latest LTS version
nvm install --lts
nvm use --lts
nvm alias default node

Method 3: Manual Installation

For a clean manual installation:

  1. Download the latest LTS installer from nodejs.org
  2. Run the installer and follow the prompts
  3. Verify installation after completion

Verifying Your Clean Installation

After completing the reinstallation, verify everything is working correctly:

bash
# Check Node.js version
node -v
# Should show latest LTS version (e.g., v18.x.x or v20.x.x)

# Check npm version
npm -v
# Should show corresponding npm version

# Check installation paths
which node
which npm
# Should both point to the same installation directory

# Test npm functionality
npm install -g express-generator

According to the SoftSuave guide, “These commands list installed Node.js versions via NVM, uninstall a specific version, and remove NVM itself” - the same verification approach applies to confirm your clean installation.


Troubleshooting Common Issues

PATH Configuration Issues

If you still have version conflicts, check your PATH configuration:

bash
echo $PATH

Ensure it doesn’t contain conflicting directories. You may need to edit your shell profile to clean up PATH entries.

Permission Issues

If you encounter permission problems during npm operations:

bash
# Avoid using sudo for npm operations
# Instead, fix ownership issues:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

As suggested by Nektony, “Try clearing the npm cache with npm cache clean –force and avoid using sudo for package installs.”

Cache Issues

Clear npm cache if you encounter installation problems:

bash
npm cache clean --force
npm config set cache ~/.npm

Sources

  1. How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X) - Stack Overflow
  2. How to Uninstall Node Using NVM and from Mac - Bacancy Technology
  3. How to uninstall Node on your Mac - MacPaw
  4. How to Uninstall Node from a Mac - Nektony
  5. Removing Node.js on Mac using Homebrew: A Step-by-Step Guide - BrowserStack
  6. How to Uninstall NVM? - BrowserStack
  7. How to Uninstall Node.js from Mac OSX - Stack Abuse
  8. How to Uninstall Node js: Best Practices for a Clean Uninstall - SoftSuave

Conclusion

Successfully completely uninstalling Node.js and reinstalling from scratch on Mac OS X requires a systematic approach that addresses all potential sources of conflict. The key steps involve removing system-wide files, cleaning user data, eliminating NVM traces, and properly configuring your environment afterward.

Key takeaways:

  • Always start by identifying exactly where your Node.js installations are located using which commands
  • Use the --force flag with Homebrew to ensure complete removal of all versions
  • Don’t forget to clean your shell configuration files to remove NVM references
  • After reinstallation, verify both the PATH and functionality work as expected

By following this comprehensive guide, you should be able to resolve your version conflicts and enjoy a clean, working Node.js environment. If you continue to experience issues, consider checking for additional PATH variables or configuration files that might be referencing old Node.js installations.