npm 模块 移除_node.js - 全局删除所有npm模块的命令?

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

你可能感兴趣的:(npm,模块,移除)