Я пытался Кай Стернад решение , но оно показалось мне несовершенным. После последнего awk
от самого дерева deps осталось много специальных символов.
Итак, я придумал собственную модификацию решения Кая Стернада (с небольшой помощью идеи кашемира ):
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.