是否有删除所有全局npm模块的命令?如果没有,你有什么建议?


当前回答

对于使用Powershell的用户:

npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }

清除缓存。

npm cache clear

其他回答

对于Windows,这个脚本可以用来核化本地和用户的全局模块和缓存。

我注意到在linux上,全局根对系统来说是全局的,而不是给定的用户。因此,对于共享系统,删除全局根可能不是一个好主意。除此之外,如果有兴趣,我可以将脚本移植到bash。

对于Windows,保存到一个cmd文件中运行。

@ECHO OFF
SETLOCAL EnableDelayedExpansion 
SETLOCAL EnableExtensions

SET /A ecode=0

:: verify
SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])?
IF /I NOT "%conf%"=="y" (
  ECHO operation aborted
  SET /A ecode=!ecode!+1
  GOTO END
)

:: wipe global and local npm root
FOR %%a IN ("" "-g") DO (

  :: get root path into var
  SET cmd=npm root %%~a
  FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)

  :: paranoid
  ECHO validating module path "!npm_root!"
  IF "!npm_root:~-12!"=="node_modules" (
    IF NOT EXIST "!npm_root!" (
      ECHO npm root does not exist "!npm_root!"
    ) ELSE (
      ECHO deleting "!npm_root!" ...
      :: delete
      RMDIR /S /Q "!npm_root!"
    )
  ) ELSE (
      ECHO suspicious npm root, ignoring "!npm_root!"
  )
)

:: clear the cache
ECHO clearing the npm cache ...
call npm cache clean

:: done
ECHO done

:END

ENDLOCAL & EXIT /b %ecode%

只要把你的控制台:

Sudo NPM list -g——depth=0。| awk -F ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g

这是我的工作……

npm list -g

将显示全局安装包的位置。

如果你想把它们输出到一个文件: npm list -g > ~/Desktop/npmoutputs.txt

npm rm -g

会移除它们

sudo npm uninstall npm -g

或者,如果失败了,获取npm源代码,并执行:

sudo make uninstall

手动删除所有与npm相关的内容:

rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

简单地使用下面的MAC,

Sudo rm -rf /usr/local/ {bin /{节点,npm}, lib / node_modules / npm、lib /节点,共享/男人/ /节点。}