Если у меня есть файл package.json, определенный в корне моего приложения, и я запустил npm install -g
его, он установит все зависимости, определенные в package.json, globablly.
Однако, похоже, это не работает наоборот.
Если я это сделаю npm uninstall -g
в корне моего приложения, он выдает ошибку, предлагая мне передать ему имя пакета.
Разве при этом не следует удалить те же пакеты, которые я установил?
Я делаю что-то неправильно?
Ответы:
Если вы используете Bash, просто перейдите в папку, в которой находится ваш файл package.json, и выполните следующее:
В случае глобально установленных пакетов переключитесь в свою
%appdata%/npm
папку (если в Windows) и выполните ту же команду.РЕДАКТИРОВАТЬ: эта команда прерывается с npm 3.3.6 (Node 5.0). Теперь я использую следующую команду Bash, которую я сопоставил с npm_uninstall_all в моем файле .bashrc:
Добавлен бонус? это намного быстрее!
https://github.com/npm/npm/issues/10187
источник
npm uninstall <package>
для каждой папки. Я сделал это сам и работает отлично!npm uninstall
позаботятся, поэтому этот трюк полезен.foreach($package in ls node_modules){npm uninstall $package}
tr is not recognized
Это сработало для меня:
командную строку или gitbash в папку node_modules вашего проекта, затем выполните:
Удалены все локальные пакеты для этого проекта.
источник
Для Windows перейдите в каталог node_modules и запустите его в powershell
источник
Недавно я нашел команду узла, которая позволяет удалить все зависимости разработки следующим образом:
Как я уже упоминал, эта команда удаляет только пакеты зависимостей разработки. По крайней мере, это помогло мне не делать это вручную.
источник
Совет для пользователей Windows: запустите эту команду PowerShell из
node_modules
родительского каталога:источник
По сути, это создает поддельный пустой package.json, вызывает
npm prune
удаление всего в node_modules, восстанавливает исходный package.json и переустанавливает все.Некоторые другие решения могут быть более элегантными, но я подозреваю, что это быстрее и исчерпывающе. В других потоках я видел, как люди предлагали просто удалить каталог node_modules, но, по крайней мере, для Windows, это приводит к тому, что npm впоследствии захлебывается, потому что каталог bin отсутствует. Может быть, на linux он восстанавливается правильно, но не на windows.
источник
На самом деле нет возможности сделать это, если вы хотите удалить пакеты,
package.json
просто выполните ихnpm ls
в том же каталоге, которыйpackage.json
использует и использует,npm uninstall <name>
илиnpm rm <name>
для пакета, который вы хотите удалить.источник
npm i
"
npm i
" не только установит недостающие deps, но и обновит node_modules в соответствии с package.json.источник
( Не повторяйте эти шаги, пока не прочтете все )
Для меня все упомянутые решения не сработали. Так я пошел
/usr/lib
и побежал тудаНо он также удалил
npm
пакет и только половину пакетов (до буквы n).Поэтому я снова попытался установить узел с помощью руководства по узлам.
Но он не установился
npm
снова.Поэтому я решил переустановить весь узел
sudo apt-get remove nodejs
и снова установить, следуя приведенному выше руководству.Теперь NPM снова работает, но глобальные модули все еще там. Итак, я проверил содержимое каталога
/usr/lib/node_modules
и, кажется, единственное, что здесь важноnpm
. Поэтому я отредактировал приведенную выше команду, чтобы удалить все, кромеnpm
Он удалил все модули без префикса
@
. Так что я расширил цикл для подкаталогов.My
/usr/lib/node_modules
теперь содержит толькоnpm
связанные пакеты.источник
Другой ПРОСТОЙ вариант - удалить node_modules и package-lock.json.
После этого вы можете попробовать переустановить пакеты npm.
источник
Даже вам не нужно для этого запускать цикл.
Вы можете удалить все node_modules, используя единственную команду: -
источник
Пользователи Powershell:
foreach($package in ls node_modules){npm uninstall $package}
Спасибо @JustMailer
источник
Опираясь на VIKAS KOHLI и jedmao , вы можете это сделать
однострочная версия:
многострочная версия:
источник