Команда удалить все модули npm глобально?
Есть ли команда для удаления всех глобальных модулей npm? Если нет, что вы предлагаете?
32 ответа
Следующая команда удаляет все глобальные модули 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%
(в проводнике, в командной строке или в меню "Пуск").
Я попробовал решение Кая Стернада, но оно показалось мне несовершенным. Было много специальных символов, оставшихся после последнего 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.
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
удаляет пакет глобально
Для тех, кто использует 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 -g ls
Команда, чтобы найти их, а затем npm -g rm
удалить их.
В Windows используйте путь "C:\Users\username\AppData\Roaming" и вручную удалите папку npm
ОС не указана в ОП. В 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 `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
Какая разница? Удаление будет выполнено одной командой: npm rm -g *** *** ***
За 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.
Используйте этот код для удаления любого пакета:
npm rm -g <package_name>
Для более ручного подхода, который не требует использования файловых обозревателей, не заботится о том, где находится установка, очень маловероятно, что он сломается позже, и он на 100% кроссплатформенный и кажется намного безопаснее из-за дополнительные шаги, используйте этот.
-
npm ls -g --depth=0
- Копировать вывод
- Вставить в любимый редактор кода (я использую vsCode. Отличное редактирование с несколькими курсорами)
- Проверьте все пакеты, которые вы хотите сохранить (nodemon, yarn, и многие другие). Удалите эти строки.
- Удалите все экземпляры
+--
или другие декораторы линий - Удалите всю информацию о версии (например,
@2.11.4
') - Поместите все элементы в одну строку, разделив пробел
- Добавлять
npm uninstall -g
до начала этой строки.- Мой выглядит как
npm uninstall -g @angular/cli @vue/cli express-generator jest mocha typescript bindings nan nodemon yarn
, но я не устанавливал много пакетов глобально на эту машину.
- Мой выглядит как
- Копировать строку
- Вставьте в терминал, нажмите Enter, если он еще не добавлен из копии / вставки
- Ищите ошибки в терминале.
- Проверять
npm ls -g
чтобы убедиться, что он завершен. Если что-то переустановили, промойте и повторите
Другие подходы, использующие только cli, отлично подходят для администраторов компьютеров, которые делают что-то для 100 почти идентичных компьютеров одновременно с помощью одного и того же ssh или, может быть, с помощью Puppet. Но если вы делаете это только один раз или даже 5 раз в год, это намного проще.
Вы можете найти все установленные пакеты npm по адресу:
C:\Users\username\AppData\Roaming\npm
и удалите содержимое npm, которое вы хотите удалить.
Если AppData не отображается, это означает, что он скрыт, и вы можете перейти в "Просмотр" в проводнике файлов и проверить скрытые элементы, после чего вы увидите все скрытые папки.
Если у вас есть Intellij Webstorm, вы можете использовать его встроенный графический менеджер пакетов.
откройте его как root и создайте проект emtpy. идти к
Файл> Настройки> Язык и рамки> Node.js и NPM
там вы увидите все установленные пакеты. Удаление очень просто, вы можете выбрать и отменить выбор любого пакета, который хотите удалить, а также Ctrl+a woks.
Просто используйте ниже для MAC,
sudo rm -rf/usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man//node.}
Хорошо, если вы работаете в Windows и хотите удалить / удалить все node_modules, вам нужно выполнить следующие шаги.
- Перейти к командной строке Windows
- Перейдите в каталог node_modules (не внутри папки node_modules)
Введите команду ниже и дайте ей в течение 1-2 минут, она удалит все каталоги внутри node_module
rmdir /s /q node_modules
Надеюсь, что это поможет кому-то на окнах
Поскольку это лучший ответ в поиске, я публикую его здесь, поскольку это было решение, которое я использовал в прошлом для очистки ноутбуков, переключающихся между компьютерами.
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
sudo npm uninstall npm -g
Или, если это не поможет, получите исходный код npm и выполните:
sudo make uninstall
Чтобы вручную удалить все, что связано с npm:
rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
npm list -g
покажет вам расположение глобально установленных пакетов.
Если вы хотите вывести их в файл:
npm list -g > ~/Desktop/npmoutputs.txt
npm rm -g
удалит их
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
В npm README.md говорится:
Если вы хотите удалить все установленные вами пакеты, вы можете использовать
npm ls
команду найти их, а затемnpm rm
чтобы удалить их.Чтобы удалить мусор, оставленный npm 0.x, вы можете использовать прилагаемый
clean-old.sh
файл сценария. Вы можете запустить его так:npm explore npm -g -- sh scripts/clean-old.sh
Если у вас установлен MSYS для Windows:
rm -rf ${APPDATA//\\/\/}/npm
Вот более элегантное решение, которое я пробовал, где всю работу за меня делает 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
Если вы используете NVM для Windows, вам необходимо удалить все модули, которые вам не нужны внутри.node_modules
Node.js с версией, содержащей глобальные модули, которые вы хотите удалить. Не снимайте
corepack
и
npm
пакеты , необходимые для Node.js.
Папка может находиться в:
%USERPROFILE%\.nvm\{version}\node_modules
.-
%USERPROFILE%
это ваша пользовательская папка. - — это версия Node.js, в которой вы хотите удалить глобальные модули.
Пример:
C:\Users\Cappuccino\.nvm\19.8.1\node_modules
.-
{installationPath}\{version}\node_modules
.-
{installationPath}
здесь вы установили NVM для Windows. -
{version}
— это версия Node.js, в которой вы хотите удалить глобальные модули. Пример:D:\Programs\NVM\v19.8.1\node_modules
.
-
Сед раствор
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g