Команда для удаления всех модулей npm по всему миру?
Есть ли команда удалить все глобальные модули npm? Если нет, что вы предлагаете?
Ответы
Ответ 1
Следующая команда удаляет все глобальные модули npm. Примечание. Это не работает в Windows. Для рабочей версии Windows см. Ollie Bennett Answer.
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
)
-
xargs npm -g rm
удаляет все модули по всему миру, которые поступают по предыдущему каналу
Ответ 2
Для тех, кто использует Windows, самый простой способ удалить все глобально установленные пакеты npm - удалить содержимое:
C:\Users\username\AppData\Roaming\npm
Вы можете быстро перейти сюда, набрав %appdata%
(либо в проводнике, либо в командной строке запуска, либо в меню "Пуск" ).
Ответ 3
Я попробовал решение Kai Sternad, но для меня это казалось несовершенным. После последнего awk
из самого дерева депо было оставлено много специальных символов.
Итак, я придумал собственную модификацию решения Kai Sternad (с небольшой помощью идеи кашемира):
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 в формате parsable:
/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|)$'
удаляет сама нью и пустые строки.
xargs -r npm -g rm
вызывает npm -g rm
для каждого модуля в списке.
Как решение Kai Sternad, оно работает только в * nix.
Ответ 4
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
удаляет пакет по всему миру
Ответ 5
Просто перейдите в свой каталог %appdata%/npm
и запустите следующее...
for package in 'ls node_modules'; do npm uninstall $package; done;
EDIT: эта команда прерывается с 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)?
Ответ 6
Для тех, кто использует Powershell:
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
Чтобы очистить кеш:
npm cache clear
Ответ 7
Если вы хотите удалить все установленные вами пакеты, вы можете использовать команду npm -g ls
, чтобы найти их, а затем npm -g rm
, чтобы удалить их.
Ответ 8
Если у вас установлен 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
Ответ 9
в Windows используйте путь "C:\Users\username\AppData\Roaming" и вручную удалите папку npm
Ответ 10
ОС не указывается OP. Для Windows этот script можно использовать для локализации локальных и глобальных модулей и кеша пользователя.
Я заметил в Linux, что глобальный корень действительно глобальный для системы, а не для данного пользователя. Таким образом, удаление глобального корня может не быть хорошей идеей для общей системы. В остальном я могу отправить script на 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%
Ответ 11
Используйте этот код для удаления любого пакета:
npm rm -g <package_name>
Ответ 12
Хорошо, если вы находитесь в окнах и хотите удалить/удалить все node_modules, то вам нужно выполнить следующие шаги.
Надеюсь, это поможет кому-то в окнах
Ответ 13
если у вас есть Intellij Webstorm, вы можете использовать встроенный графический менеджер пакетов.
откройте его как root и создайте проект emtpy. идти к
Файл> Настройки> Язык и рамки> Node.js и NPM
там вы увидите все установленные пакеты. Деинсталляция проста, вы можете выбрать и отменить выбор любого пакета, который хотите удалить, Ctrl + woks.
Ответ 14
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
Ответ 15
Все, что вы сделали хорошую работу. Это объединенные предложения в одной строке кода.
npm rm -g 'npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' ''
Какая разница? Удаление будет выполнено одной командой: npm rm -g *** *** ***
Ответ 16
sed решение
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
Ответ 17
Это просто: rm -rf ~/.npm
Ответ 18
Просто вставьте консоль:
sudo npm list -g --depth = 0. | awk -F '' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
Его работа для меня...