Відповіді:
Наступна команда видаляє всі глобальні модулі 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
знову зіткнувся з помилками EINTEGRITY . Мені довелося також видалити package-lock.json
файл.
Я спробував рішення Каї Стернада , але це здалося мені недосконалим. Після останнього awk
з самого дерева деревців було багато спеціальних символів .
Отже, я придумав власну модифікацію рішення Каї Стернада (з невеликою допомогою ідеї кашеміру ):
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
для кожного модуля у списку.
Як і рішення Кая Стернада , воно працюватиме лише під * 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;
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/isissue/10187
Як ви можете видалити всі залежності, перелічені в package.json (NPM)?
npm
а n
доtr
у вікні перейдіть до каталогу "C: \ Користувачі {ім'я користувача} \ AppData \ Роумінг" та видаліть папку 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
стилем apropos .
npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
ОС, не визначена ОП. Для Windows цей скрипт можна використовувати для запускання локальних та глобальних модулів та кешу користувача.
Я помітив на linux, що глобальний корінь справді глобальний для системи замість даного користувача. Тож видалення глобального кореня може бути не дуже хорошою ідеєю для спільної системи. Що вбік, я можу перенести скрипт, щоб бити, якщо зацікавлений.
Для 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
Сподіваюсь, це допоможе комусь із вікон
якщо у вас є 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.
Оскільки це головна відповідь у пошуку, я розміщую це тут, оскільки це було рішення, яке я використовував у минулому для очищення комп'ютерів, що перемикаються на ноутбуках.
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