是否有删除所有全局npm模块的命令?如果没有,你有什么建议?


当前回答

你都做得很好。这是将建议合并到一行代码中。

npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`

有什么不同?卸载将通过如下命令完成:npm rm -g *** *** ***

其他回答

Windows:

rmdir /s /q "%appdata%/npm"

我尝试了凯·斯特纳德的解决方案,但对我来说似乎并不完美。在最后一个awk之后,deps树本身留下了很多特殊的符号。

所以,我对Kai Sternad的解决方案进行了自己的修改(从cashmere的想法中得到了一点帮助):

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下工作。

只需切换到您的%appdata%/npm目录并运行以下…

for package in `ls node_modules`; do npm uninstall $package; done;

EDIT:这个命令在npm 3.3.6 (Node 5.0)中中断。我现在使用以下Bash命令,我已经映射到我的.bashrc文件中的npm_uninstall_all:

npm uninstall `ls -1 node_modules | tr '/\n' ' '`

额外的好处?这要快得多!

https://github.com/npm/npm/issues/10187

如何卸载包中列出的所有依赖项。json (NPM) ?

在macOS中,我相信你可以简单地删除用户目录中的.npm-global文件夹。

macOS下的.npm和.npm-global文件夹用户目录:

使用此代码卸载任何包:

npm rm -g <package_name>