Как удалить модули 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 также удаляет его глобально

Menztrual
источник
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

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

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

GrahamLe
источник
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 

не работал

kayleeFrye_onDeck
источник
6

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

npm un packageName или npm rm packageName

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

Mwiza
источник
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

Nastro
источник
Просто любопытно, почему в некоторых случаях «npm uninstall -g packageName» не работает?
Мвиза
потому что это огромный глючный код ... его действительно сложно адаптировать к любой версии ОС. Я думаю, что в этом причина
Nastro
3

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

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

запустить

npm uninstall <package>

например:

npm uninstall mongodb

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

CodeMirror
источник
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
snassr
источник
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
Jackkobec
источник
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папки вашего проекта

SherylHohman
источник
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. Это должно исправить вашу проблему.

Танумай Гхош
источник