Как очистить папку node_modules пакетов, которые не находятся в пакете .json?

Предположим, что я устанавливаю пакеты проекта с npm install, который смотрит в package.json для модулей, которые будут установлены. Через некоторое время я вижу, что мне не нужен какой-то конкретный модуль и удалить его зависимость от package.json. Затем я удаляю некоторые другие модули из package.json, потому что они больше не нужны, а другие заменяются альтернативами.

Теперь я хочу очистить папку node_modules, чтобы остались только модули, перечисленные в package.json, а остальные должны идти, что-то вроде npm clean. Я знаю, что могу удалить их вручную, но хотел бы иметь неплохую возможность использовать для этого функцию сахара.

Ответ 1

Я думаю, что вы ищете npm prune

npm prune [<name> [<name ...]]

Эта команда удаляет "посторонние" пакеты. Если имя пакета При условии, что только пакеты, соответствующие одному из следующих удален.

Посторонние пакеты - это пакеты, которые не указаны на родительский пакет.

Смотрите документы: https://docs.npmjs.com/cli/prune

Ответ 2

Вы можете удалить свою папку node_modules/, а затем переустановить зависимости из package.json.

rm -rf node_modules/
npm install

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

Ответ 3

Из-за того, что папка, вложенная в Windows, не может удалить папку, так как ее имя слишком длинное. Чтобы решить эту проблему, установите RimRaf:

npm install rimraf -g

rimraf node_modules

Ответ 4

Сначала глобально установите rimraf

npm install rimraf -g

перейдите к пути, используя cmd, где находится ваша папка node_modules и примените следующую команду

rimraf node_modules

Ответ 5

просто запустить

rm -r node_modules

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

как rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

просто откройте gitbash перейдите в корень папки и запустите эту команду

Надеюсь, это поможет.

Ответ 6

Вы пробовали обрезать npm?

он должен удалить все, что не указано в вашем файле пакета

https://npmjs.org/doc/cli/npm-prune.html

Ответ 8

Удалите/отредактируйте пакеты, которые не нужны в package-lock.json (имена пакетов будут записаны в зависимости и devDependencies), а затем

npm install

Ответ 9

Я добавил несколько строк в package.json:

"scripts": {
  ...
  "clean": "rmdir /s /q node_modules",
  "reinstall": "npm run clean && npm install",
  "rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
  ...
}

Если вы хотите clean только вы можете использовать этот rimraf node_modules или rm -rf node_modules.

Работает нормально

Ответ 10

Используйте следующую команду вместо npm install

npm ci