Can't uninstall global npm packages after installing nvm

21,253

Solution 1

(nvm maintainer here)

The list of things that you can npm uninstall -g is available at npm ls -g --depth=0. If you don't see the thing you want to uninstall there, but you can still access it, then if it was npm-installed, it was probably installed with your system version of node.

You can quickly verify this with nvm use system && npm ls -g --depth=0. If you see the package there, then while using the system version, you can npm uninstall -g it.

Solution 2

Sorry I know this is an old question but here we are in 2019 and was just an issue for me ... what I found is that I needed to invoke uninstall on the npm at the path that NVM cares about.

Here's what worked for me:

Tue Aug 20 08:09:07 ~
<username> $ npm uninstall -g [email protected]
up to date in 0.051s
Tue Aug 20 08:09:13 ~
<username> $ edgemicro --version
current nodejs version is v8.16.0
current edgemicro version is 3.0.4
3.0.4
// Clearly didn’t work :(

// Let’s try sudo ….
Tue Aug 20 08:09:18 ~
<username> $ sudo npm uninstall -g [email protected]
Password:
up to date in 0.035s
Tue Aug 20 08:10:20 ~
<username> $ edgemicro --version
current nodejs version is v8.16.0
current edgemicro version is 3.0.4
3.0.4
// Still didn’t work :(

// So where is this seemingly immortal executable?
Tue Aug 20 08:10:28 ~
<username> $ which edgemicro
/Users/<username>/.nvm/versions/node/v8.16.0/bin/edgemicro
// It’s under some NVM specific path it seems.
// It seems NPM is also under some NVM specific path, kinda expected.
Tue Aug 20 08:10:33 ~
<username> $ which npm
/Users/<username>/.nvm/versions/node/v8.16.0/bin/npm

// So let’s use that exact npm to perform the uninstall …
Tue Aug 20 08:10:42 ~
<username> $ /Users/<username>/.nvm/versions/node/v8.16.0/bin/npm uninstall -g edgemicro
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but npm-shrinkwrap.json was generated for lockfileVersion@0. I'll try to do my best with it!
removed 2442 packages in 25.851s
Tue Aug 20 08:11:24 ~
<username> $ which edgemicro
Tue Aug 20 08:11:29 ~
<username> $ // Done.

Solution 3

None of the above solutions worked for me.

My nvm version was 1.0.1 - weird.

So none of the suggested:

nvm deactivate && nvm uninstall..

Worked for me, as they are not commands.

I was trying to uninstall create-react-app

which create-react-app
/usr/local/bin/create-react-app

I just done the most obvious and naive thing

rm -rf /usr/local/bin/create-react-app

And its all good!

Share:
21,253

Related videos on Youtube

Luke_io
Author by

Luke_io

Web developer by day, open source hobbyist developer by night. Blockchain Enthusiast.

Updated on March 30, 2022

Comments

  • Luke_io
    Luke_io about 2 years

    I've found several threads related to this issue but none seem to deal with my case specifically and I've been unable to solve using the suggestions I've found.

    When I run npm uninstall -g "some package"

    it just returns: up to date in .043s - And the global package remains.

    For example I'm trying to uninstall babel-cli and after running npm uninstall -g babel-cli I'm still able to use the cli.

    This started after I uninstalled node and npm and reinstalled using nvm. I'm wondering if I missed something while uninstalling node and it's causing the issue. I checked my dot files and noticed I still have a .npm outside of .nvm. Is that normal? Thanks in advance for any suggestions.

    • Chris911
      Chris911 over 6 years
      This is possibly caused by having multiple paths in the your PATH environment variable and babel-cli installed for different versions of node. What is returned when you run which babel or which babel-cli (whatever the executable name is)?
    • Luke_io
      Luke_io over 6 years
      /usr/local/bin/babel
    • Chris911
      Chris911 over 6 years
      Looks like it was installed globally. As far as I know nvm doesn't install executables there. Is it possible you also installed babel with another package manager like brew on macOS?
    • mattliu
      mattliu over 4 years
      I thought I was having this problem, but I was omitting the "@" in the package name. If you're in the same situation as me, remember the "@". e.g. npm uninstall -g @angular/cli
  • mikebrsv
    mikebrsv over 6 years
    I have no system npm installed (only nvm). I can see the package I want to uninstall via npm ls -g --depth=0, but still can't uninstall it. Additionally, npm ls -g --depth=0 outputs this: npm ERR! invalid: [email protected] /home/<...>/.nvm/versions/node/v8.9.4/lib/node_modules/npm/n‌​ode_modules/tar/node‌​_modules/minizlib after the packages list
  • LJHarb
    LJHarb over 6 years
    Aha - in this case, it seems like the copy of npm that the specific node install has (v8.9.4) is corrupt. The easiest solution, unfortunately, is to uninstall that node version and reinstall it - nvm deactivate && nvm uninstall 8.9.4 && nvm install 8.9.4 should do it.
  • mikebrsv
    mikebrsv over 6 years
    Looks like that was the case. Everything works after reinstalling.
  • LJHarb
    LJHarb about 6 years
    Glad to hear it!
  • user2831723
    user2831723 over 5 years
    Holy mother of god. Why is this not written up in bold somewhere ? :D thanks a lot
  • Trevor Allred
    Trevor Allred over 4 years
    I had to also do this /usr/local/bin/npm uninstall -g create-react-app
  • Mickers
    Mickers over 4 years
    Took 4 days to track this answer down. Thanks a lot!
  • Daniel Cooke
    Daniel Cooke over 4 years
    None of this works for me, nvm deactivate is not a command on my version. (1.0.1)
  • LJHarb
    LJHarb over 4 years
    @DanielCooke that's because you're not using nvm, which hasn't yet hit v1.0. Perhaps you're using nvm-windows, a different project? (real nvm only works on Windows using WSL)
  • Daniel Cooke
    Daniel Cooke over 4 years
    I'm on macos, been ages since I installed it - not sure. I fixed it by removing the command from /usr/local/bin
  • daydreamer
    daydreamer about 4 years
    nvm deactivate && nvm uninstall web-push -g worked for me. Thanks @daniel
  • KayZee
    KayZee almost 4 years
    Worked for me. Don't know why we would need to get through all that...
  • PhoenixB
    PhoenixB over 3 years
    Thanks! Though it did take an extra step for me, I opened Finder in the directory you found, to delete my package.
  • esentai
    esentai almost 3 years
    @LJHarb what does "nvm deactivate" does in the above recommendation? In other words would nvm uninstall not do the job? The reason I am asking is because after I did "nvm deactivate" I get "No .nvmrc file found" message; seems like nvm had been removed from $path variable
  • LJHarb
    LJHarb almost 3 years
    @esental nvm uninstall removes node, not nvm. deleting the nvm files doesn't unload it from your shell session - that's what nvm deactivate does.