Як видалити модулі npm у вузлі js?


1130

Як завжди відомо, будь-який модуль НПМ можна встановити, запустивши просту команду: npm install <module_name>.

Я встановив кілька модулів, якими більше не користуюся, і просто хочу їх зняти. У мене є кілька питань щодо цього:

  • Чи є у нас якась команда чи процес для видалення модуля з кореня (щось на кшталт npm uninstall <module_name>) чи просто буде видалено файли модуля?

  • Як це впливає на нас, якщо ми зберігаємо невикористані модулі?


2
Якщо ви хочете видалити всі модулі npm, перейдіть сюди: stackoverflow.com/questions/9283472/…
daniel

Відповіді:


1728

Команда проста npm uninstall <name>

У документах Node.js https://npmjs.org/doc/ є всі команди, які вам потрібно знати з npm.

Локальна установка буде в node_modules/каталозі вашої програми. Це не вплине на додаток, якщо модуль залишиться там без посилань на нього.

Якщо ви видалите глобальний пакет, будь-які додатки, на які посилається на нього, завершаться.

Ось різні варіанти:

npm uninstall <name>видаляє модуль з, node_modulesале не оновлюєpackage.json

npm uninstall <name> --saveтакож видаляє його з dependenciesвpackage.json

npm uninstall <name> --save-devтакож видаляє його з devDependenciesвpackage.json

npm uninstall -g <name> --save також видаляє його в усьому світі


19
спробуйте це npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rmвидалити всі встановлені на модулі модулі. якщо ви перебуваєте у Windows, то для його запуску вам потрібно встановити Cygwin або git
Nur Rony,

198
Кілька порад: npm uninstall <name>вилучає модуль з node_modules, але не package.json. Зробіть npm uninstall <name> --saveтакож, щоб видалити залежність із пакета.json. Зробіть, npm -g uninstall <name> --saveщоб видалити залежність у всьому світі.
Raine Revere

1
Для видалення всіх глобальних модулів: stackoverflow.com/questions/5926672 / ... і видаляти node_modules папки для видалення усіх локальних модулів видалити локальну node_modules папки
DanteTheSmith

1
Я намагався видалити cypress@3.1.4 за допомогою всіх перерахованих вище команд, і це все ще є
Steve Staple

20
npm uninstall <name> now removes the module from both package.json` andnode_modules
philip oghenerobo balogun

86

Якщо це не працює, npm uninstall <module_name>спробуйте його глобально, ввівши -g.

Можливо, вам просто потрібно це зробити як суперкористувач / адміністратор sudo npm uninstall <module_name>.


4
-gкорисно, якщо є npm WARN uninstall.
Lorem Ipsum Dolor

49

Щоб дати повну відповідь на це питання, є два способи : (наприклад, ми називаємо встановлений модуль як module1)

  1. Щоб видалити module1, не змінюючи package.json:

    npm uninstall module1

  2. Щоб видалити module1 зі зміною package.json та видалити його із залежностей у package.json:

    npm uninstall --save module1

Примітка: щоб спростити вищезазначені команди, ви можете використовувати -S замість --save , а замість видалення вилучити , rm , r , un , від’єднати, замість видалення


Для повноти слід бути обережним, чи хоче він / вона усунути ГЛОБАЛЬНУ або МІСЬКУ залежність. Для глобальних гравців використовуйте -g із зазначеним вище! Крім того : Для видалення всіх глобальних модулів: stackoverflow.com/questions/5926672 / ... і видаляти node_modules папки Для видалення всіх локальних модулів видалити локальну node_modules папки
DanteTheSmith

28

Я просто встановлюю стилус за замовчуванням під своїм домашнім режисером, тому я просто використовую npm uninstall stylusйого, щоб зняти його, або ви можете спробувати npm rm <package_name>.


17

Для видалення модуля вузла:

npm uninstall <module_name>  

Це видалить модуль з node_modules, але не з package.json. Отже, коли ми знову встановимо npm, він завантажить модуль.

Отже, для видалення модуля з package.json використовуйте:

npm uninstall <module_name> --save  

Це також видаляє залежність від package.json.

А якщо ви хочете видалити будь-який глобальний модуль, ви можете використовувати:

npm -g uninstall <module_name> --save 

Це залежно видалить глобально.


@WernerHenze Коли я дав відповідь 2016 року, тоді відсутній якийсь глобальний модуль видалення!
Вішну Мішра

7

Щоб видалити пакети node_modules/оптом, ви також можете їх видалити package.json, зберегти та запустити npm pruneна терміналі.

Це видалить ті пакунки, які існують у файловій системі, але не використовуються / оголошуються package.json.

PS> Це особливо корисно для Windows, оскільки у вас часто можуть виникати проблеми з неможливістю видалення деяких файлів через "перевищення межі довжини шляху".


6

Я виявив це важким шляхом, навіть якщо це здається очевидним.

Я спочатку намагався пройти цикл через каталог node_modules, який працює npm uninstall module-nameз простим циклом для скрипту. Я з’ясував, що це не спрацює, якщо ви зателефонуєте на повний шлях, наприклад

npm uninstall module-name

працював, але

npm uninstall /full/path/to/node_modules/module-name 

не працював.


5

Ви також можете виконати наступне як скорочення:

npm un packageName або npm rm packageName

Примітка. Додати -gв кінці команди для видалення глобальних пакетів.


4

Інколи npm uninstall -g packageNameне працює.

У цьому випадку ви можете видалити пакет вручну.

На Mac перейдіть у папку /usr/local/lib/node_modulesта видаліть папку з потрібного пакету. Це воно. Перевірте свій список глобально встановлених пакетів за допомогою цієї командиnpm list -g --depth=0


Цікаво, чому в деяких випадках "npm uninstall -g packageName" не працює?
Mwiza

адже це величезний баггі-код ... реально важко адаптуватися до кожної версії ОС. Я думаю, що це причина
Nastro

3

Для користувачів Windows - якщо ви хочете видалити всі модулі вузлів, встановлені відразу:

  • Відкрити оболонку повноважень
  • Зайти всередину папки node_modules (cd node_modules)
  • Виконайте цю команду - "npm uninstall (Get-ChildItem) .Name"

Це видалить усі модулі.


3

Оновлення npm 5:

З npm 5.0.0 встановлені / видалені модулі за замовчуванням додаються / видаляються як залежність, тому параметр --save більше не потрібен.

бігати

npm uninstall <package>

наприклад:

npm uninstall mongodb

Він також видалить модуль із папки node_modules та файлу package.json


1
Правда; якщо ви хочете , старе поведінка по замовчуванням (залишаючи package.json недоторканим), використовуйте --no-зберегти прапор docs.npmjs.com/cli/install
Marcus

2

Цей uninstallпараметр не працював для мене, коли я намагався використовувати ту саму команду для тієї, яку я використовував при встановленні (як я встановлював із @latestдирективою)

Наприклад, я встановив такий пакет:

npm install  @ngtools/webpack@latest

А потім я хотів її видалити, тому я використав ту саму команду (включаючи @latest)

npm uninstall  @ngtools/webpack@latest

Отже, видалення вище не працювало, я повинен видалити @latest&, а потім він добре працював

npm uninstall  @ngtools/webpack

Я сподіваюся, що це допомагає


1
# login as root (might be required depending on install)
su - 
# list all global packages
npm ls -g --depth=0
# list all local (project) packages
npm ls -p --depth=0
# remove all global packages
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# remove all local packges
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm

# NOTE (optional): to use node with sudo you can add the bins to /usr/bin
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm

1

Найпростіше рішення:

npm uninstall packageName --save-dev

Дивіться назви пакетів верхнього рівня у вашому проекті:

npm list --depth=0

Вихід буде таким:

app@0.1.0 /home/jackkobec/projects/myAppName
├── packageName@packageVersion
├── express@4.16.4

Скопіюйте ім'я пакета та виконайте команду видалення npm. Приклад експрес-пакету:

npm uninstall express --save-dev

1

Для видалення модуля за допомогою npm ви можете використовувати:

npm uninstall moduleName

Крім того, якщо ви хочете видалити та хочете, щоб зміни відображалися у вашому пакеті.json, тоді ви можете використовувати прапор --save, наприклад:

npm uninstall moduleName --save
OR
npm uninstall -S

І якщо ви хочете видалити модуль з devDependpendes і хочете, щоб зміни відображалися в package.json, ви можете використовувати прапор -D, наприклад, такий:

npm uninstall moduleName -D

1

Для видалення модуля вузла:

npm uninstall <module_name>  

Це видалить модуль з node_modules, але не з package.json.

Вилучіть модуль з пакету package.json за допомогою цієї команди:

npm uninstall <module_name> --save 

Це також видалити з пакета.json.


0

Крім того, якщо ви почали використовувати yarnзамість npm:
yarn remove <package-name>

Є еквівалентом:
npm uninstall <package-name> --save

Це дозволить
- видалити пакет із package.json, а також
- видалити його з node-modulesпапки вашого проекту


0

Використовуйте

npm uninstall <package_name>

Приклад для видалення express

npm uninstall express


-2

Якщо ви хочете видалити декілька модулів, просто запустіть npm uninstall. Потім перейдіть package.jsonі видаліть звідти непотрібний модуль, а потім просто запустіть команду npm install. Це повинно вирішити вашу проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.