我在 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%
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:
17 回答
在Windows中使用“C:\ Users \ username \ AppData \ Roaming”路径并手动删除npm文件夹
如果你有Intellij Webstorm,你可以使用它的内置图形包管理器 .
以root身份打开它并创建一个emtpy项目 . 去
在那里你会看到所有已安装的软件包 . 卸载很简单,您可以选择和取消选择要卸载的任何软件包,也可以选择一个炒锅 .
OP未指定OS . 对于 Windows ,此脚本可用于核心本地和用户的全局模块和缓存 .
我在 linux 注意到全局根对系统而言是真正全局的而不是给定用户 . 因此,删除全局根可能不是共享系统的好主意 . 除此之外,如果感兴趣,我可以将脚本移植到bash .
对于 Windows ,保存到要运行的cmd文件 .
以下命令将删除所有全局npm模块 . 注意:这在Windows上不起作用 . 有关正常运行的Windows版本,请参阅Ollie Bennett's Answer .
下面是它的工作原理:
npm ls -gp --depth=0
列出了所有全球顶级模块(参见cli documentation for ls)awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
打印所有实际上不是npm的模块(不以/npm
结尾)xargs npm -g rm
删除前一个管道上的所有全局模块我试过Kai Sternad's solution,但这对我来说似乎并不完美 . 在deps树本身的最后一个
awk
之后留下了很多特殊符号 .所以,我想出了我自己对 Kai Sternad 解决方案的修改(在cashmere's idea的帮助下):
npm ls -gp --depth=0
以 parsable 格式列出所有全局安装的npm模块: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下工作 .
它很简单:
rm -rf ~/.npm
只需切换到
%appdata%/npm
目录并运行以下命令即可...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:
加奖金?它的速度更快!
https://github.com/npm/npm/issues/10187
How do you uninstall all dependencies listed in package.json (NPM)?
使用此代码卸载任何包:
对于使用 Powershell 的人:
要清除缓存:
好吧,如果你在Windows上,并想要删除/卸载所有node_modules,那么你需要执行以下步骤 .
转到Windows命令提示符
导航到node_modules目录( Not inside node_modules folder )
键入以下命令并给它1-2分钟,它将卸载node_module中的所有目录
希望这会对Windows上的某些人有所帮助
sed解决方案
对于那些使用 Windows 的人来说,删除所有全局安装的npm包的最简单方法是删除以下内容:
C:\Users\username\AppData\Roaming\npm
您可以通过键入
%appdata%
(在资源管理器,运行提示或开始菜单中)快速到达此处 .为我工作
sudo npm list -g --depth=0.
列出了所有安装的顶级awk -F ' ' '{print $2}'
摆脱├──awk -F '@' '{print $1}'
获取'@'之前的部分sudo xargs npm remove -g
全局删除包如果你安装了jq,你甚至可以不用grep / awk / sed:
在Debian和派生的你可以安装jq:
如果要删除已安装的所有软件包,可以使用
npm -g ls
命令查找它们,然后使用npm -g rm
删除它们 .只需放入你的控制台:
sudo npm list -g --depth = 0 . | awk -F'''{print $ 2}'| awk -F'@''{print $ 1}'| sudo xargs npm remove -g
它的工作对我来说......