首页 文章

命令全局删除所有npm模块?

提问于
浏览
303

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

17 回答

  • 415

    在Windows中使用“C:\ Users \ username \ AppData \ Roaming”路径并手动删除npm文件夹

  • 169

    如果你有Intellij Webstorm,你可以使用它的内置图形包管理器 .

    以root身份打开它并创建一个emtpy项目 . 去

    文件>设置>语言和框架> Node.js和NPM

    在那里你会看到所有已安装的软件包 . 卸载很简单,您可以选择和取消选择要卸载的任何软件包,也可以选择一个炒锅 .

  • 20

    OP未指定OS . 对于 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%
    
  • 10

    以下命令将删除所有全局npm模块 . 注意:这在Windows上不起作用 . 有关正常运行的Windows版本,请参阅Ollie Bennett's Answer .

    npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
    

    下面是它的工作原理:

    • npm ls -gp --depth=0 列出了所有全球顶级模块(参见cli documentation for ls

    • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' 打印所有实际上不是npm的模块(不以 /npm 结尾)

    • xargs npm -g rm 删除前一个管道上的所有全局模块

  • 51

    我试过Kai Sternad's solution,但这对我来说似乎并不完美 . 在deps树本身的最后一个 awk 之后留下了很多特殊符号 .

    所以,我想出了我自己对 Kai Sternad 解决方案的修改(在cashmere's idea的帮助下):

    npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
    

    npm ls -gp --depth=0parsable 格式列出所有全局安装的npm模块:

    /home/leonid/local/lib
    /home/leonid/local/lib/node_modules/bower
    /home/leonid/local/lib/node_modules/coffee-script
    ...
    

    awk -F/node_modules/ '{print $2}' 从路径中提取模块名称,形成所有全局安装模块的列表 .

    grep -vE '^(npm|)$' 删除npm本身和空白行 .

    xargs -r npm -g rm 为列表中的每个模块调用 npm -g rm .

    Kai Sternad 's solution, it' ll只能在* nix下工作 .

  • 211
    npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
    
  • -1

    它很简单: rm -rf ~/.npm

  • 0

    只需切换到 %appdata%/npm 目录并运行以下命令即可...

    for package in `ls node_modules`; do npm uninstall $package; done;
    

    EDIT: This command breaks with npm 3.3.6 (Node 5.0). I'm now using the following Bash command, which I've mapped to npm_uninstall_all in my .bashrc file:

    npm uninstall `ls -1 node_modules | tr '/\n' ' '`
    

    加奖金?它的速度更快!

    https://github.com/npm/npm/issues/10187

    How do you uninstall all dependencies listed in package.json (NPM)?

  • 4

    使用此代码卸载任何包:

    npm rm -g <package_name>
    
  • 6

    对于使用 Powershell 的人:

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

    要清除缓存:

    npm cache clear
    
  • 1

    好吧,如果你在Windows上,并想要删除/卸载所有node_modules,那么你需要执行以下步骤 .

    • 转到Windows命令提示符

    • 导航到node_modules目录( Not inside node_modules folder

    • 键入以下命令并给它1-2分钟,它将卸载node_module中的所有目录

    rmdir /s /q node_modules
    

    希望这会对Windows上的某些人有所帮助

  • -4

    sed解决方案

    npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
    
  • 3

    对于那些使用 Windows 的人来说,删除所有全局安装的npm包的最简单方法是删除以下内容:

    C:\Users\username\AppData\Roaming\npm

    您可以通过键入 %appdata% (在资源管理器,运行提示或开始菜单中)快速到达此处 .

  • 1
    sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g
    

    为我工作

    • sudo npm list -g --depth=0. 列出了所有安装的顶级

    • awk -F ' ' '{print $2}' 摆脱├──

    • awk -F '@' '{print $1}' 获取'@'之前的部分

    • sudo xargs npm remove -g 全局删除包

  • -4

    如果你安装了jq,你甚至可以不用grep / awk / sed:

    npm ls -g --json --depth=0 |
      jq -r '.dependencies|keys-["npm"]|join("\n")' |
      xargs npm rm -g
    

    在Debian和派生的你可以安装jq

    sudo apt-get install jq
    
  • 18

    如果要删除已安装的所有软件包,可以使用 npm -g ls 命令查找它们,然后使用 npm -g rm 删除它们 .

  • 4

    只需放入你的控制台:

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

    它的工作对我来说......

相关问题