node.js - 全局删除所有npm模块的命令?
是否有删除所有全局npm模块的命令? 如果没有,你有什么建议?
EhevuTov asked 2019-02-05T11:11:43Z
17个解决方案
414 votes
以下命令将删除所有全局npm模块。 注意:这不适用于Windows。 对于正常运行的Windows版本,请参阅Ollie Bennett的答案。
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
下面是它的工作原理:
xargs npm -g rm列出了所有全局顶级模块(请参阅ls的cli文档)
xargs npm -g rm打印所有实际上不是npm的模块(不以/npm结尾)
xargs npm -g rm删除通过上一个管道的全局所有模块
Kai Sternad answered 2019-02-05T11:12:17Z
207 votes
对于那些使用Windows的人来说,删除所有全局安装的npm包的最简单方法是删除以下内容:
%appdata%
您可以通过键入%appdata%(在资源管理器,运行提示或开始菜单中)快速到达此处。
Ollie Bennett answered 2019-02-05T11:12:51Z
169 votes
我尝试过Kai Sternad的解决方案但对我来说似乎并不完美。 在deps树本身的最后一个xargs -r npm -g rm之后留下了很多特殊符号。
所以,我想出了自己对Kai Sternad解决方案的修改(从羊绒的想法中得到了一些帮助):
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
xargs -r npm -g rm以可分析的格式列出所有全局安装的npm模块:
/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...
xargs -r npm -g rm从路径中提取模块名称,形成所有全局安装模块的列表。
xargs -r npm -g rm删除npm本身和空行。
xargs -r npm -g rm为列表中的每个模块调用npm -g rm。
就像Kai Sternad的解决方案一样,它只能在* nix下工作。
Leonid Beschastny answered 2019-02-05T11:13:52Z
51 votes
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
为我工作
sudo xargs npm remove -g列出了所有已安装的顶级
sudo xargs npm remove -g摆脱├──
sudo xargs npm remove -g获取“@”之前的部分
sudo xargs npm remove -g全局删除包
cashmere answered 2019-02-05T11:14:39Z
20 votes
只需切换到您的%appdata%/npm目录并运行以下命令...
for package in `ls node_modules`; do npm uninstall $package; done;
编辑:此命令打破npm 3.3.6(节点5.0)。 我现在使用以下Bash命令,我已将其映射到我的.bashrc文件中的npm_uninstall_all:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
加奖金? 它的速度更快!
[https://github.com/npm/npm/issues/10187]
如何卸载package.json(NPM)中列出的所有依赖项?
jedmao answered 2019-02-05T11:15:26Z
18 votes
对于那些使用Powershell的人:
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
要清除缓存:
npm cache clear
Kedar Vaidya answered 2019-02-05T11:15:54Z
10 votes
如果要删除已安装的所有软件包,可以使用npm -g ls命令查找它们,然后使用npm -g rm删除它们。
Bill answered 2019-02-05T11:16:17Z
6 votes
如果你安装了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
eush77 answered 2019-02-05T11:16:45Z
4 votes
操作系统未指定操作系统。 对于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%
bvj answered 2019-02-05T11:17:20Z
4 votes
在windows中使用“C:\ Users \ username \ AppData \ Roaming”路径并手动删除npm文件夹
pradeep karunathilaka answered 2019-02-05T11:17:42Z
2 votes
使用此代码卸载任何包:
npm rm -g
user1452840 answered 2019-02-05T11:18:03Z
1 votes
好吧,如果你在Windows上,并想要删除/卸载所有node_modules,那么你需要执行以下步骤。
转到Windows命令提示符
导航到node_modules目录(不在node_modules文件夹内)
键入下面的命令并给它1-2分钟,它将卸载node_module中的所有目录
rmdir /s /q node_modules
希望这能帮助一些人在Windows上
Anjum.... answered 2019-02-05T11:18:57Z
1 votes
如果你有Intellij Webstorm,你可以使用它的内置图形包管理器。
以root身份打开它并创建一个空项目。 去
文件> 设置> 语言和框架> Node.js和NPM
在那里你会看到所有已安装的软件包。 卸载很简单,您可以选择和取消选择要卸载的任何软件包,也可以选择Ctrl + a woks。
George Shalvashvili answered 2019-02-05T11:19:38Z
0 votes
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
rwilhelm answered 2019-02-05T11:19:54Z
-1 votes
sed解决方案
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
koola answered 2019-02-05T11:20:15Z
-4 votes
它很简单:rm -rf ~/.npm
sheerun answered 2019-02-05T11:20:37Z
-4 votes
只需放入你的控制台:
sudo npm list -g --depth = 0。| awk -F'''{print $ 2}'| awk -F'@''{print $ 1}'| sudo xargs npm remove -g
它的工作对我来说......
busterkika answered 2019-02-05T11:21:12Z