Ответы:
Следующая команда удаляет все глобальные модули npm. Примечание: это не работает в Windows. Для работающей версии Windows, см . Ответ Олли Беннетта .
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
Вот как это работает:
npm ls -gp --depth=0
выводит список всех глобальных модулей верхнего уровня (см. документацию по cli для ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
печатает все модули, которые на самом деле не являются npm (не заканчиваются /npm
)xargs npm -g rm
удаляет все модули глобально, которые приходят по предыдущему каналуДля тех, кто использует Windows , самый простой способ удалить все глобально установленные пакеты npm - это удалить содержимое:
C:\Users\username\AppData\Roaming\npm
Вы можете быстро туда добраться, набрав %appdata%/npm
в проводнике, в командной строке или в меню «Пуск».
%USERPROFILE%\AppData\npm
без roaming
.
npm install
снова. Я должен был также удалить свой package-lock.json
файл.
Я попробовал решение Кая Стернада , но оно показалось мне несовершенным. После самого последнего 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.
npm
все его глобальные модули устанавливаются в один каталог. Точное местоположение может отличаться, но обычно это так /usr/local/lib/node_modules
.
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
@angular/cli
). Я добавляю еще один сопоставитель для, awk
и рабочая команда для меня выглядит следующим образом:npm ls -gp --depth=0 | awk -F/ '/node_modules\/@/ {print $(NF-1)"/"$NF} /node_modules\/[^@]/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
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
удаляет пакет глобальноnpm remove UNMET
делает NOOP.
grep -v npm
чтобы сам npm не удалялся:sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Для тех, кто использует Powershell :
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Чтобы очистить кеш:
npm cache clear
Просто переключитесь в свой %appdata%/npm
каталог и выполните следующее ...
for package in `ls node_modules`; do npm uninstall $package; done;
РЕДАКТИРОВАТЬ: Эта команда прерывается с npm 3.3.6 (Node 5.0). Сейчас я использую следующую команду Bash, которую я сопоставил с npm_uninstall_all в моем файле .bashrc:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
Добавлен бонус? это намного быстрее!
https://github.com/npm/npm/issues/10187
Как удалить все зависимости, перечисленные в package.json (NPM)?
npm
и n
передtr
в Windows перейдите в каталог «C: \ Users {имя пользователя} \ AppData \ Roaming» и вручную удалите папку npm
Если у вас установлен 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
json
стилем.
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
ОС не указана в ОП. В 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%
Используйте этот код для удаления любого пакета:
npm rm -g <package_name>
Вы можете найти все установленные пакеты npm по адресу:
C:\Users\username\AppData\Roaming\npm
и удалите содержимое npm, которое вы хотите удалить.
Если AppData не отображается, это означает, что он скрыт, и вы можете перейти к просмотру в проводнике и проверить скрытые элементы, тогда вы сможете увидеть все скрытые папки.
Хорошо, если вы находитесь в Windows и хотите удалить / удалить все node_modules, то вам нужно выполнить следующие шаги.
Введите команду ниже и дайте ей в течение 1-2 минут, она удалит все каталоги внутри node_module
rmdir /s /q node_modules
Надеюсь, это поможет кому-то на Windows
если у вас есть Intellij Webstorm, вы можете использовать встроенный графический менеджер пакетов.
откройте его как root и создайте проект emtpy. перейти к
Файл> Настройки> Язык и рамки> Node.js и NPM
там вы увидите все установленные пакеты. Деинсталляция проста, вы можете выбрать и отменить выбор любого пакета, который вы хотите удалить, а также Ctrl + a woks.
За 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 global.
Так как это лучший ответ в поиске, я выкладываю это здесь, так как это было решение, которое я использовал в прошлом для чистки компьютеров, переключающих ноутбуки.
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
Вот более элегантное решение, которое я попробовал, когда я позволил 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
Просто вставьте в вашу консоль:
Список sudo npm -g --depth = 0. | awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm удалить -g
Его работа для меня ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Объяснение: разделить пробелами или @, сопоставлять только строки с @, имя модуля будет соответствовать последнему совпадению ($(NF-1)
), поэтому печатать только если это не такnpm