我尝试了Kai Sternad的解决方案,但对我来说似乎并不完美。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下工作。