Kai*_*nad 477
以下命令将删除所有全局npm模块.注意:这不适用于Windows.对于正常运行的Windows版本,请参阅Ollie Bennett的答案.
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Run Code Online (Sandbox Code Playgroud)
下面是它的工作原理:
npm ls -gp --depth=0列出所有全局顶级模块(请参阅ls的cli文档)awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'打印所有实际上不是npm的模块(不以...结尾/npm)xargs npm -g rm 删除前一个管道上的所有全局模块Oll*_*ett 248
对于那些使用Windows的人来说,删除所有全局安装的npm包的最简单方法是删除以下内容:
C:\Users\username\AppData\Roaming\npm
您可以通过键入%appdata%(在资源管理器,运行提示或开始菜单中)快速到达此处.
Leo*_*tny 175
我试过凯斯特纳德的解决方案,但对我来说似乎并不完美.awk在deps树本身的最后一个之后留下了很多特殊符号.
所以,我想出了自己对Kai Sternad解决方案的修改(从羊绒的想法中得到一点帮助):
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
Run Code Online (Sandbox Code Playgroud)
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
...
Run Code Online (Sandbox Code Playgroud)
awk -F/node_modules/ '{print $2}' 从路径中提取模块名称,形成所有全局安装模块的列表.
grep -vE '^(npm|)$' 删除npm本身和空行.
xargs -r npm -g rm调用npm -g rm列表中的每个模块.
就像Kai Sternad的解决方案一样,它只能在*nix下工作.
cas*_*ere 60
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Run Code Online (Sandbox Code Playgroud)
为我工作
sudo npm list -g --depth=0. 列出所有顶级安装awk -F ' ' '{print $2}' 摆脱├──awk -F '@' '{print $1}' 得到'@'之前的部分sudo xargs npm remove -g 全局删除包Ked*_*dya 23
对于那些使用Powershell的人:
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Run Code Online (Sandbox Code Playgroud)
要清除缓存:
npm cache clear
Run Code Online (Sandbox Code Playgroud)
jed*_*mao 22
只需切换到您的%appdata%/npm目录并运行以下...
for package in `ls node_modules`; do npm uninstall $package; done;
Run Code Online (Sandbox Code Playgroud)
编辑:此命令打破npm 3.3.6(节点5.0).我现在使用以下Bash命令,我已将其映射到我的.bashrc文件中的npm_uninstall_all:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Run Code Online (Sandbox Code Playgroud)
加奖金?它的速度更快!
https://github.com/npm/npm/issues/10187
如何卸载package.json(NPM)中列出的所有依赖项?
pra*_*aka 13
在Windows中使用"C:\ Users\username\AppData\Roaming"路径并手动删除npm文件夹
如果你安装了jq,你甚至可以不用grep/awk/sed:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
Run Code Online (Sandbox Code Playgroud)
在Debian和派生的你可以安装jq:
sudo apt-get install jq
Run Code Online (Sandbox Code Playgroud)
OP未指定OS。对于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%
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
357057 次 |
| 最近记录: |