Как удалить модули npm в узле js?


1132

Как обычно известно, любой модуль НПМ можно установить, запустив простую команду: npm install <module_name>.

Я установил несколько модулей, которые больше не использую, и просто хочу их отключить. У меня есть несколько вопросов по этому поводу:

  • Есть ли у нас какая-либо команда или процесс для удаления модуля из корня (что-то подобное npm uninstall <module_name>), или мы просто удалим файлы модуля?

  • Как это повлияет на нас, если мы оставим неиспользуемые модули?


2
Если вы хотите удалить все модули npm, зайдите сюда: stackoverflow.com/questions/9283472/…
Даниэль

Ответы:


1731

Команда просто 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чтобы удалить все gobally установленный модуль. если вы работаете в Windows, вам нужно установить Cygwin или git для его запуска
Nur Rony

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

1
Я пытался удалить cypress@3.1.4, используя все команды, перечисленные выше, и он все еще там
Steve Staple

20
npm uninstall <name> now removes the module from both package.json` иnode_modules
Philip Oghenerobo Balogun

1
с 2019 года узел 13 (я верю и в 10+) удаляет пакеты из package.json черезnpm uninstall <name>
Максим Шамихулау

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 и можете использовать remove , rm , r , un , unlink вместо uninstall


Ради полноты следует быть осторожным, хочет ли он / она удалить ГЛОБАЛЬНУЮ или ЛОКАЛЬНУЮ зависимость. Для глобалов используйте -g с вышеприведенным! Также: Для удаления всех глобальных модулей: stackoverflow.com/questions/5926672/… И удалить папку node_modules Для удаления всех локальных модулей удалите локальную папку
node_modules

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 

Это удалит зависимость глобально.


7

Для node_modules/массового удаления пакетов вы также можете удалить их package.json, сохранить их и запустить npm pruneна терминале.

Это удалит те пакеты, которые существуют в файловой системе, но не используются / не объявлены package.json.

PS> Это особенно полезно в Windows, так как вы можете часто сталкиваться с проблемами из-за невозможности удалить некоторые файлы из-за «превышения длины пути».


6

Я нашел это трудным путем, даже если это казалось бы очевидным.

Сначала я попытался перебрать каталог node_modules, работающий npm uninstall module-nameс простым циклом for в скрипте. Я обнаружил, что это не будет работать, если вы называете полный путь, например

npm uninstall module-name

работал, но

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

не работал


6

Вы также можете запустить следующее как сокращение:

npm un packageName или npm rm packageName

Примечание. Добавьте -gв конце команды, чтобы удалить глобальные пакеты.


4

Для пользователей Windows - если вы хотите удалить все установленные модули узла:

  • Открытый PowerShell
  • Перейти в папку node_modules (cd node_modules)
  • Запустите эту команду - «Удаление npm (Get-ChildItem). Имя»

Это удалит все модули.


4

Иногда npm uninstall -g packageNameне работает.

В этом случае вы можете удалить пакет вручную.

На Mac перейдите в папку /usr/local/lib/node_modulesи удалите папку с нужным вам пакетом. Вот и все. Проверьте список глобально установленных пакетов с помощью этой командыnpm list -g --depth=0


Просто любопытно, почему в некоторых случаях «npm uninstall -g packageName» не работает?
Мвиза

потому что это огромный глючный код ... его действительно сложно адаптировать к любой версии ОС. Я думаю, что в этом причина
Nastro

3

Обновление npm 5:

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

запустить

npm uninstall <package>

например:

npm uninstall mongodb

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


1
Правда; если вы хотите использовать старое поведение по умолчанию (оставив package.json без изменений), используйте флаг --no
Маркус

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

Также, если вы хотите удалить и хотите, чтобы изменение было отражено в вашем package.json, вы можете использовать флаг --save, например:

npm uninstall moduleName --save
OR
npm uninstall -S

И если вы хотите удалить модуль из devDependencies и хотите, чтобы изменение было отражено в package.json, вы можете использовать флаг -D, например так:

npm uninstall moduleName -D

1

Чтобы удалить модуль узла:

npm uninstall <module_name>  

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

Удалите модуль из пакета package.json с помощью этой команды:

npm uninstall <module_name> --save 

Это также удалить из package.json.


0

Кроме того, если вы начали использовать yarn, вместо npm:
yarn remove <package-name>

Является эквивалентом:
npm uninstall <package-name> --save

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


0

Вы можете удалить модуль узла вручную. Для Windows

  1. Перейти в node_modulesкаталог вашего репо.

  2. Удалите модуль узла, который вам не нужен.

  3. Не забудьте удалить ссылку на модуль в своем package.json! Ваш проект может все еще работать со ссылкой, но вы можете получить ошибку. Вы также не хотите оставлять неиспользованные ссылки в вашей, package.jsonкоторые могут позже привести к путанице.


-1

использование

npm uninstall <package_name>

Пример удаления Express

npm uninstall express

-1

В случае, если вы используете Windows, запустите CMD от имени администратора и введите npm -g uninstall <package name>.


-2

Если вы хотите удалить номер модуля, просто запустите npm uninstall. Затем перейдите package.jsonи удалите ненужный модуль оттуда, а затем просто выполните команду npm install. Это должно исправить вашу проблему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.