是否有删除所有全局npm模块的命令?如果没有,你有什么建议?
答案 0 :(得分:448)
以下命令将删除所有全局npm模块。注意:这不适用于Windows。有关正常运行的Windows版本,请参阅Ollie Bennett's Answer。
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
以下是它的工作原理:
npm ls -gp --depth=0
列出了所有全球顶级模块(请参阅cli documentation for ls)awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
打印所有实际上不是npm的模块(不以/npm
结尾)xargs npm -g rm
删除所有来自上一个管道的全局模块答案 1 :(得分:231)
对于使用 Windows 的用户,删除所有全局安装的npm包的最简单方法是删除以下内容:
C:\Users\username\AppData\Roaming\npm
您可以通过键入%appdata%
(在资源管理器,运行提示或开始菜单中)快速到达此处。
答案 2 :(得分:174)
我试过Kai Sternad's solution,但这对我来说似乎并不完美。在deps树本身的最后awk
之后留下了很多特殊符号。
所以,我想出了自己对 Kai Sternad 解决方案的修改(在cashmere's idea的帮助下):
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下工作。
答案 3 :(得分:58)
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
全局删除包答案 4 :(得分:22)
只需切换到您的%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
How do you uninstall all dependencies listed in package.json (NPM)?
答案 5 :(得分:21)
对于那些使用 Powershell :
的人npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
清除缓存:
npm cache clear
答案 6 :(得分:12)
如果要删除已安装的所有软件包,可以使用npm -g ls
命令查找它们,然后npm -g rm
删除它们。
答案 7 :(得分:7)
在Windows中使用 “ C:\ Users \ username \ AppData \ Roaming”路径并手动删除npm文件夹
答案 8 :(得分:6)
如果你安装了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
答案 9 :(得分:4)
OP未指定操作系统。对于 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%
答案 10 :(得分:3)
使用此代码卸载任何包:
npm rm -g <package_name>
答案 11 :(得分:2)
您做得很好。这是将建议合并为一个行代码。
npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
有什么不同?卸载将通过单个命令完成,例如:npm rm -g *** *** ***
答案 12 :(得分:1)
对于不涉及文件浏览器的更手动的方法,不关心安装在哪里,以后不太可能中断,并且 100% 跨平台兼容,并且感觉更安全因为步骤多,就用这个吧。
npm ls -g --depth=0
+--
或其他行装饰器的每个实例@2.11.4
”)npm uninstall -g
添加到该行的开头。
npm uninstall -g @angular/cli @vue/cli express-generator jest mocha typescript bindings nan nodemon yarn
,但我没有在这台机器上全局安装很多软件包。npm ls -g
以确保它完整。如果重新安装了某些东西,请冲洗并重复其他仅 cli 的方法非常适合计算机管理员从同一个 ssh 或 Puppet 中同时为 100 台几乎相同的计算机执行某些操作。但如果你一年只做一次,甚至 5 次,这就容易多了。
答案 13 :(得分:1)
对于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全局存储在哪里。
答案 14 :(得分:1)
如果你有Intellij Webstorm,你可以使用它的内置图形包管理器。
以root身份打开它并创建一个emtpy项目。转到
档案&gt;设置&gt;语言和框架&gt; Node.js和NPM
您将看到所有已安装的软件包。卸载很简单,您可以选择和取消选择要卸载的任何软件包,也可以选择Ctrl + a。
答案 15 :(得分:1)
如果您在Windows上,并且想要删除/卸载所有node_modules,那么您需要执行以下步骤。
键入以下命令并给它1-2分钟,它将卸载node_module中的所有目录
rmdir /s /q node_modules
希望这对Windows上的某人有所帮助
答案 16 :(得分:0)
您可以在以下位置找到所有已安装的npm软件包:
C:\Users\username\AppData\Roaming\npm
并删除您要删除的npm的内容。
如果未显示AppData,则表明它已隐藏,您可以转到在文件浏览器中查看并检查“隐藏”项目,然后在其中可以看到所有隐藏的文件夹。
答案 17 :(得分:0)
由于这是搜索的最佳答案,因此我将其张贴在这里,因为这是我过去用来清洁计算机交换笔记本电脑的解决方案。
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
答案 18 :(得分:0)
这是一个更优雅的解决方案,我尝试过让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 uninstall
或npm remove
,这些模块将被视为它们是项目的正常依赖项。完成后,它甚至会生成package-lock.json文件:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
答案 19 :(得分:0)
如果您具有Windows的MSYS:
rm -rf ${APPDATA//\\/\/}/npm
答案 20 :(得分:0)
npm README.md状态:
如果您想删除所有已安装的软件包, 那么您可以使用
npm ls
命令找到它们,然后npm rm
删除它们。要删除npm 0.x留下的残留物,可以使用随附的
clean-old.sh
脚本文件。您可以像这样方便地运行它:npm explore npm -g -- sh scripts/clean-old.sh
答案 21 :(得分:0)
答案 22 :(得分:0)
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
答案 23 :(得分:-1)
sed solution
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
答案 24 :(得分:-4)
只需放入你的控制台:
sudo npm list -g --depth = 0。 | awk -F'''{print $ 2}'| awk -F'@''{print $ 1}'| sudo xargs npm remove -g
它为我工作......
答案 25 :(得分:-4)
这很简单:rm -rf ~/.npm