Как удалить все зависимости, перечисленные в пакете.json (NPM)?



Если у меня есть пакет.JSON-файл, определенный в мой корень, приложение и запустите npm install -g он установит все зависимости, определенные в пакете.json, globablly.



однако это не работает в обратном направлении.



Если я делаю npm uninstall -g в моем корне приложения он выдает ошибку, заставляя меня передать ему имя пакета.



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



Я делаю что-то неправильно?

996   7  

7 ответов:

Если вы используете Bash, просто переключитесь в папку, в которой находится ваш пакет.JSON-файл и запустите следующее:

for package in `ls node_modules`; do npm uninstall $package; done;

в случае глобально установленных пакетов, переключитесь на ваш %appdata%/npm папка (если в Windows) и выполните ту же команду.

изменить: эта команда разрывается с npm 3.3.6 (узел 5.0). Теперь я использую следующую команду Bash, которую я сопоставил с npm_uninstall_all в моем .файл bashrc:

npm uninstall `ls -1 node_modules | tr '/\n' ' '`

дополнительный бонус? это намного быстрее!

https://github.com/npm/npm/issues/10187

это сработало для меня:

командная строка или gitbash в папку node_modules в вашем проекте затем выполните:

npm uninstall *

удалены все локальные пакеты для этого проекта.

для windows перейдите в каталог node_modules и запустите его в powershell

npm uninstall (Get-ChildItem).Name 

недавно я нашел команду node, которая позволяет удалить все зависимости разработки следующим образом:

npm prune --production

Как я уже упоминал, эта команда удаляет только пакеты зависимостей разработки. По крайней мере, это помогло мне не делать это вручную.

на самом деле нет возможности сделать это, если вы хотите удалить пакеты от package.json просто npm ls в том же каталоге, что package.json полагается и использовать npm uninstall <name> или npm rm <name> для пакета, который вы хотите удалить.

совет для пользователей Windows: запустите эту команду PowerShell изнутри node_modules родительский каталог:

ls .\node_modules | % {npm uninstall $_}
// forcibly remove and reinstall all package dependencies
ren package.json package.json-bak
echo {} > package.json
npm prune
del package.json
ren package.json-bak package.json
npm i

это по существу создает фейк, пустой пакет.джсон, звонит npm prune чтобы удалить все в node_modules, восстанавливает исходный пакет.json и переустанавливает все.

некоторые другие решения могут быть более элегантными, но я подозреваю, что это быстрее и исчерпывающе. В других потоках я видел, что люди предлагают просто удалить каталог node_modules, но, по крайней мере, для windows, это заставляет npm задыхаться после этого, потому что каталог bin пропадает. Может быть дальше linux он восстанавливается правильно, но не windows.

Comments

    Ничего не найдено.