( Не повторяйте эти шаги, пока не прочтете все )
Для меня все упомянутые решения не сработали. Так я пошел /usr/lib
и побежал туда
for package in `ls node_modules`; do sudo npm uninstall $package; done;
Но он также удалил npm
пакет и только половину пакетов (до буквы n).
Поэтому я снова попытался установить узел с помощью руководства по узлам.
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
Но он не установился npm
снова.
Поэтому я решил переустановить весь узел
sudo apt-get remove nodejs
и снова установить, следуя приведенному выше руководству.
Теперь NPM снова работает, но глобальные модули все еще там. Итак, я проверил содержимое каталога /usr/lib/node_modules
и, кажется, единственное, что здесь важно npm
. Поэтому я отредактировал приведенную выше команду, чтобы удалить все, кромеnpm
for package in $(ls node_modules); do if [ "$package" != "npm" ]; then sudo npm uninstall $package; fi; done;
Он удалил все модули без префикса @
. Так что я расширил цикл для подкаталогов.
for package in $(ls node_modules); do if [ ${package:0:1} = \@ ]; then
for innerPackage in $(ls node_modules/${package}); do
sudo npm uninstall "$package/$innerPackage";
done;
fi; done;
My /usr/lib/node_modules
теперь содержит только npm
связанные пакеты.