Команда для удаления всех модулей 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, то вам нужно выполнить следующие шаги.

  • Перейти к командной строке Windows
  • Перейдите в каталог node_modules (Не внутри папки node_modules)
  • Введите команду ниже и дайте ей в течение 1-2 минут, она удалит все каталоги внутри node_module

     rmdir /s /q 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

Его работа для меня...