Есть ли команда для удаления всех глобальных модулей npm? Если нет, что вы предлагаете?
Команда для глобального удаления всех модулей npm?
Ответы (24)
Следующая команда удаляет все глобальные модули 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
удаляет все модули глобально, которые идут по предыдущему каналу
npm ls
. Я пытался исправить это сам, но правки должны быть не менее 6 символов ...
- person Bill; 15.02.2012
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
Объяснение: разделить на пробелы или @, сопоставить только строки с @, имя модуля будет предпоследним совпадением ($(NF-1)
), поэтому печатать только если это не npm
- person Fotios; 11.07.2013
xargs npm -g rm
на xargs npm -g uninstall
, чтобы он работал на моей машине
- person SyntaxRules; 08.08.2013
xargs npm -g rm
на xargs -L1 echo
. Я думаю, что npm ls -gp
в начале должно быть npm -ls -p
.
- person fisherwebdev; 27.12.2013
npm ls -p
(ls без тире) верен
- person Kai Sternad; 27.12.2013
brew update; brew upgrade node
.
- person Emil Stenström; 09.06.2015
curl -L https://www.npmjs.com/install.sh | sh
- Я не обратил внимания и пропустил отсутствующий https: //, когда скопировал из ответа @Jack. Также стоит отметить gist.github.com/DanHerbert/9520689 (не я).
- person Dan; 22.06.2015
npm
и подумать о его переустановке через nvm install node
, см. github.com/creationix/nvm
- person lionello; 16.02.2016
Для тех, кто использует Windows, самый простой способ удалить все глобально установленные пакеты npm - это удалить содержимое:
C:\Users\username\AppData\Roaming\npm
Вы можете быстро попасть туда, набрав %appdata%/npm
в проводнике, в командной строке или в меню «Пуск».
%USERPROFILE%\AppData\npm
без roaming
.
- person Liam; 16.03.2018
npm install
столкнулся с ошибками EINTEGRITY. Мне также пришлось удалить свой package-lock.json
файл.
- person ToastyMallows; 25.04.2018
C:\Users\[username]\AppData\Roaming\nvm\[version]\node_modules
- person Tim Hutchison; 08.03.2021
C:\Users\[username]\node_modules
- person Menas; 29.06.2021
Я попробовал решение Кая Стернада, но мне оно показалось несовершенным. После последнего awk
из самого дерева deps осталось много специальных символов.
Итак, я придумал свою собственную модификацию решения 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 в формате для анализа:
/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
.
- person Leonid Beschastny; 08.04.2014
npm
.
- person Leonid Beschastny; 04.11.2014
1.4.21
, и он работал нормально. Хотя он пытался удалить n
диспетчер бинарных узлов и node-gyp
конструктор надстроек, но не npm
.
- person Leonid Beschastny; 04.11.2014
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
- person real_ate; 03.07.2015
npm ls -gp --depth=0 --silent | awk -F/node_modules/ '{print $2}' | sed '/^$/d; /^npm$/d;' | xargs npm -g rm
- вместо этого решено использовать sed
- person Luke; 21.04.2016
npm
модуль каждый раз эффективно отфильтровывался. Я также не заметил отличий от вашего последнего редактирования. Я предполагаю, что люди соглашаются с удалением npm
, потому что npm@3
сглаживает дерево зависимостей, поэтому оба наших решения могут удалить некоторые из его зависимостей, тем самым нарушив его.
- person Leonid Beschastny; 26.06.2016
@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
- person Jack Q; 17.07.2017
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.
- person kangax; 08.06.2014
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
- person brauliobo; 23.03.2015
Для тех, кто использует 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;
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)?
npm
и n
перед tr
- person apnerve; 12.01.2018
Если вы хотите удалить все установленные вами пакеты, вы можете использовать команду npm -g ls
, чтобы найти их, а затем npm -g rm
, чтобы удалить их.
в Windows перейдите в каталог «C: \ Users {username} \ 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
.
- person Richard Ayotte; 10.10.2015
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
- person Roger; 18.12.2019
ОС не указана OP. В 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%
Для 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 `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
Что отличается? Удаление будет выполнено одной командой, например: npm rm -g *** *** ***
Вы можете найти все установленные пакеты npm по адресу:
C:\Users\username\AppData\Roaming\npm
и удалите содержимое npm, которое вы хотите удалить.
Если AppData не отображается, это означает, что он скрыт, и вы можете перейти к просмотру в проводнике файлов и проверить скрытые элементы, после чего вы увидите все скрытые папки.
Используйте этот код для удаления любого пакета:
npm rm -g <package_name>
Что ж, если вы работаете в Windows и хотите удалить / удалить все node_modules, вам необходимо выполнить следующие шаги.
- Перейти в командную строку Windows
- Перейдите в каталог node_modules (Не внутри папки node_modules)
Введите команду ниже и дайте ей на 1-2 минуты, она удалит все каталоги внутри node_module.
rmdir /s /q node_modules
Надеюсь, это поможет кому-то в окнах
если у вас есть Intellij Webstorm, вы можете использовать его встроенный графический менеджер пакетов.
откройте его как root и создайте пустой проект. перейти к
Файл> Настройки> Язык и рамки> Node.js и NPM
там вы увидите все установленные пакеты. Удалить легко, вы можете выбрать и отменить выбор любого пакета, который хотите удалить, Ctrl + a также работает.
Для более ручного подхода, который не требует использования файловых обозревателей, не заботится о том, где находится установка, очень маловероятно, что он сломается позже, и на 100% кроссплатформенный, и кажется намного безопаснее из-за дополнительные шаги, используйте этот.
npm ls -g --depth=0
- Копировать вывод
- Вставить в любимый редактор кода (я использую vsCode. Отличное редактирование с несколькими курсорами)
- Проверьте все пакеты, которые вы хотите сохранить (nodemon, yarn, и многие другие). Удалите эти строки.
- Удалите все экземпляры
+--
или других декораторов строк - Удалите всю информацию о версии (например, "
@2.11.4
") - Поместите все элементы в одну строку, разделив пробел
- Add
npm uninstall -g
to beginning of that one line.- Mine looks like
npm uninstall -g @angular/cli @vue/cli express-generator jest mocha typescript bindings nan nodemon yarn
, but I didn't install many packages globally on this machine.
- Mine looks like
- Копировать строку
- Вставьте в терминал, нажмите Enter, если он еще не добавлен из копии / вставки
- Ищите ошибки в терминале.
- Проверьте
npm ls -g
, чтобы убедиться, что он завершен. Если что-то переустановили, промойте и повторите
Другие подходы, основанные только на cli, отлично подходят для администраторов компьютеров, которые делают что-то для 100 почти идентичных компьютеров одновременно с одного и того же ssh или, возможно, с помощью Puppet. Но если вы делаете это только один раз или даже 5 раз в год, это намного проще.
Поскольку это лучший ответ в поиске, я публикую его здесь, так как это было решение, которое я использовал в прошлом для очистки портативных компьютеров, переключающихся между собой.
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
Если у вас установлен MSYS для Windows:
rm -rf ${APPDATA//\\/\/}/npm
В npm README.md говорится:
Если вы хотите удалить все установленные вами пакеты, вы можете использовать команду
npm ls
, чтобы найти их, а затемnpm rm
, чтобы удалить их.Чтобы удалить мусор, оставленный npm 0.x, вы можете использовать включенный файл сценария
clean-old.sh
. Вы можете запустить его так:npm explore npm -g -- sh scripts/clean-old.sh
решение sed
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
Просто введите в консоль:
sudo npm list -g --depth = 0. | awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm удалить -g
Это работа для меня ...