命令全局删除所有npm模块

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

546676 次浏览

如果你想删除你已经安装的所有包,你可以使用npm -g ls命令来找到它们,然后使用npm -g rm来删除它们。

下面的命令删除所有全局npm模块。注意:这在Windows上不起作用。对于一个工作的Windows版本,请参见奥利·贝内特的回答

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

下面是它的工作原理:

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

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

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

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

使用此代码卸载任何包:

npm rm -g <package_name>

我试过Kai Sternad的解决方案,但它似乎不完美。在deps树本身的最后一个awk之后留下了许多特殊符号。

因此,我提出了自己对Kai Sternad的解决方案的修改(在羊绒的想法的帮助下):

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

npm ls -gp --depth=0解析的格式列出了所有全局安装的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下工作。

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

sed的解决方案

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

为我工作

  • 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;

EDIT:此命令与npm 3.3.6 (Node 5.0)断开。我现在使用以下Bash命令,我已经将其映射到我的.bashrc文件中的npm_uninstall_all

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

额外的好处?这要快得多!

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

如何卸载软件包中列出的所有依赖项。json (NPM) ?< / >

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

  1. 进入windows命令提示符
  2. 导航到node_modules目录(不在node_modules文件夹中)
  3. 输入下面的命令,并给它1-2分钟,它将卸载node_module内的所有目录

     rmdir /s /q node_modules
    

Hope this will help some one on windows

如果你已经安装了金桥,你可以在没有grep/awk/sed的情况下运行:

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

在Debian和derived上,你可以安装金桥:

sudo apt-get install jq

对于那些使用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 list -g——depth=0。| awk -F ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g

这是我的工作……

op未指定的OS。对于窗户,此脚本可用于拆除本地和用户的全局模块和缓存。

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

对于窗户,保存到一个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用户打开并创建一个空项目。去

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

在那里您将看到所有已安装的包。卸载很容易,你可以选择和取消选择任何包,你想卸载,Ctrl+一个工作以及。

在Windows go to “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 # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +

来源:https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e

对于yarn global

nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add

或者,如果你不关心package.json中实际的内容

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

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

下面是我尝试的一个更优雅的解决方案,我让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 uninstallnpm remove,这些模块将被视为项目的正常依赖项。它甚至生成一个包锁。Json文件,当它完成:

$ npm remove <package-name> # you may need sudo if it was installed using sudo

如果你有MSYS for Windows:

rm -rf ${APPDATA//\\/\/}/npm

npm README。md:

如果你想删除你已经安装的所有软件包, 然后你可以使用npm ls命令来找到它们,然后用npm rm来 移除它们。< / p >

移除npm 0留下的cruft。X,你可以使用包含的 clean-old.sh脚本文件。你可以像这样方便地运行它:

   npm explore npm -g -- sh scripts/clean-old.sh

在macOS中,我相信你可以简单地删除用户目录中的.npm-global文件夹。

< p >。macOS下的。npm和。npm-global文件夹用户目录:
。macOS用户目录“/> .npm”和“。npm-global”</a> < / p ></div>
                                                                            </div>
                                </div>
                            </div>
                        </div>
                                                <div class=

对于一种更手动的方法,它不涉及文件浏览器,不关心安装在哪里,以后不太可能崩溃,100%跨平台兼容,并且由于额外的步骤而感觉更安全,请使用这种方法。

  • npm ls -g --depth=0
  • 副本输出
  • 粘贴到最喜欢的代码编辑器(我使用vsCode。伟大的多光标编辑)
  • 检查任何你想保留的包(没有恶魔,纱线,等等)删除这些线
  • 删除+--或其他行装饰器的每个实例
  • 删除所有版本信息(例如'@2.11.4')
  • 把所有项目放在同一行,空格分开
  • npm uninstall -g 添加到该行的开头。
    • 我的看起来像npm uninstall -g @angular/cli @vue/cli express-generator jest mocha typescript bindings nan nodemon yarn,但我没有在这台机器上全局安装很多包。
  • 复制行
  • 粘贴到终端,如果还没有从复制/粘贴中添加,请按enter键
  • 检查终端中的任何错误。
  • 检查npm ls -g以确保它是完整的。如果有东西重新安装了,清洗并重复

其他仅使用cli的方法非常适合计算机管理员从相同的ssh或Puppet同时为100台几乎相同的计算机做一些事情。但如果你只做一次,甚至一年5次,这就容易多了。

简单地使用下面的MAC,

sudo rm -rf /usr/local/ {bin /{节点,npm}, lib / node_modules / npm、lib /节点,共享/人/ /节点。} < / p >

Windows:

rmdir /s /q "%appdata%/npm"
npm list -g

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

如果你想把它们输出到一个文件:
NPM list -g >~ /桌面/ npmoutputs.txt < / p >

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*