Node.js 全局删除所有npm模块的命令?

Node.js 全局删除所有npm模块的命令?,node.js,npm,Node.js,Npm,是否有删除所有全局npm模块的命令?如果没有,您有什么建议?如果您想删除所有已安装的软件包,您可以使用npm-g ls命令查找它们,然后npm-g rm删除它们。以下命令删除所有全局npm模块。注意:这在Windows上不起作用。有关可用的Windows版本,请参阅 以下是它的工作原理: npm ls-gp--depth=0列出了所有全局顶级模块(请参阅) awk-F/'/node_modules/&&/\/npm$/{print$NF}'打印实际上不是npm本身的所有模块(不以/npm结尾)

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

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

以下命令删除所有全局npm模块。注意:这在Windows上不起作用。有关可用的Windows版本,请参阅

以下是它的工作原理:

  • npm ls-gp--depth=0
    列出了所有全局顶级模块(请参阅)
  • awk-F/'/node_modules/&&/\/npm$/{print$NF}'
    打印实际上不是npm本身的所有模块(不以
    /npm
    结尾)
  • xargs npm-g rm
    全局删除前一管道上的所有模块

对于使用Windows的用户,删除所有全球安装的npm软件包的最简单方法是删除以下内容:

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


您可以通过在资源管理器、运行提示符或“开始”菜单中键入
%appdata%/npm
快速到达该位置。

使用此代码卸载任何软件包:

npm rm -g <package_name>
npm rm-g
我试过了,但对我来说似乎不完美。在deps树本身的最后一次
awk
之后,留下了许多特殊符号

因此,我对Kai Sternad的解决方案提出了自己的修改意见(有以下几点帮助):

npm ls-gp--depth=0
parsable格式列出所有全球安装的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的解决方案一样,它只能在*nix下工作。

sed解决方案

npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
为我工作

  • sudo npm list-g--depth=0。
    列出所有顶级安装
  • awk-F'{print$2}'
    摆脱├──
  • awk-F'@'{print$1}'
    获取'@'之前的部分
  • sudo xargs npm remove-g
    全局删除包

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

for package in `ls node_modules`; do npm uninstall $package; done;
编辑:此命令与npm 3.3.6(节点5.0)中断。我现在使用下面的Bash命令,我已将其映射到.bashrc文件中的npm\u uninstall\u all:

额外奖金?快多了


如果您在windows上,并且想要删除/卸载所有节点模块,那么您需要执行以下步骤

  • 转到windows命令提示符
  • 导航到节点模块目录(不在节点模块文件夹内
  • 键入下面的命令,并给予它1-2分钟,它将卸载节点_模块内的所有目录

     rmdir /s /q node_modules
    
  • 希望这将对windows上的某些人有所帮助

    如果您已安装,即使没有grep/awk/sed,您也可以使用:

    npm ls -g --json --depth=0 |
      jq -r '.dependencies|keys-["npm"]|join("\n")' |
      xargs npm rm -g
    
    在Debian和Debian上,您可以通过以下方式安装:


    对于使用Powershell的用户:

    npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
    
    要清除缓存,请执行以下操作:

    npm cache clear
    

    只需在控制台中输入:

    sudo npm列表-g——深度=0.|awk-F'{print$2}'|awk-F'@'{print$1}'| sudo xargs npm remove-g


    它对我有用…

    操作系统不是由OP指定的。对于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%
    

    如果您有Intellij Webstorm,则可以使用其内置的图形包管理器

    以root用户身份打开它并创建emtpy项目。去

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

    在那里,您将看到所有已安装的软件包。卸载很容易,您可以选择和取消选择要卸载的任何软件包,也可以按住Ctrl+a键。

    在windows中转到
    “C:\Users{username}\AppData\Roaming”目录并手动删除npm文件夹

    您做得很好。这是在一行代码中组合的建议

    npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
    

    有什么不同?卸载将通过以下单个命令完成:
    npm rm-g************

    您可以在以下位置找到所有已安装的npm软件包:

    C:\Users\username\AppData\Roaming\npm
    
    并删除要删除的npm的内容


    如果AppData没有显示,这意味着它是隐藏的,您可以在文件资源管理器中查看并检查隐藏的项目,然后在那里您可以看到所有隐藏的文件夹。

    因为这是搜索中最重要的答案,所以我将此贴在这里,因为这是我过去用来清理电脑切换笔记本电脑的解决方案

    cd~/Documents#或将项目存放在何处
    找到-名称“node_modules”-exec rm-rf'{}”+
    

    来源:

    用于
    纱线全球

    nano~/.config/warn/global/package.json
    纱线全球添加
    
    或者,如果您不关心包.json中的实际内容

    echo{}>~/.config/thread/global/package.json&&thread global add
    

    这应该也适用于NPM,但我不确定NPM global存储在哪里。

    这里有一个更优雅的解决方案,我尝试让NPM为我完成所有工作

    # On Linux Mint 19.1 Cinnamon
    # First navigate to where your global packages are installed.
    
    $ npm root # returns /where/your/node_modules/folder/is
    $ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules
    
    然后,如果执行
    npm uninstall
    npm remove
    操作,这些模块将被视为项目的正常依赖项。完成后,它甚至会生成一个package-lock.json文件:

    $ npm remove <package-name> # you may need sudo if it was installed using sudo  
    
    $npm remove#如果是使用sudo安装的,则可能需要sudo
    
    如果您有适用于Windows的MSYS:

    rm -rf ${APPDATA//\\/\/}/npm
    
    npm README.md stat
    npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
    
    C:\Users\username\AppData\Roaming\npm
    
    # On Linux Mint 19.1 Cinnamon
    # First navigate to where your global packages are installed.
    
    $ npm root # returns /where/your/node_modules/folder/is
    $ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules
    
    $ npm remove <package-name> # you may need sudo if it was installed using sudo  
    
    rm -rf ${APPDATA//\\/\/}/npm