У меня есть несколько проектов npm, сохраненных в локальном каталоге. Теперь я хочу сделать резервную копию моих проектов без node_modules
папки, так как она занимает много места и может быть восстановлена в любое время с помощью npm install
.
Итак, мне нужно решение для рекурсивного удаления всех папок node_modules по указанному пути с помощью интерфейса командной строки. Любые предложения / помощь очень ценны.
-prune
это важная оптимизация. Будет обнаружено, что не нужно рекурсивно переходить вnode_module
каталоги (искать вложенные модули node_modules)/node_modules/gulp-server-livereload/node_modules: Directory not empty
использую множество «внутренних» папок node_modules. Как это обойти?'{}' +
?{}
- это заполнитель, которыйfind
заменяет найденный путь к файлу.+
указываетfind
добавить все пути к файлам в одну команду, а не запускатьrm
для каждой.Улучшение принятого ответа,
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
Я обнаружил, что команда будет работать очень долго, чтобы получить все папки, а затем запустить команду удаления, чтобы сделать команду возобновляемой, которую я предлагаю использовать,
\;
и чтобы увидеть ход выполнения команды, используйте,-print
чтобы увидеть удаляемый каталог.Примечание: вы должны сначала
cd
войти в корневой каталог, а затем запустить команду или вместоfind .
использованияfind {project_directory}
Чтобы удалить папки по одной
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \;
Удаление папок по одной и печать удаляемой папки
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
Редактировать:
Для людей, которым нравится интерактивный способ сделать это, обратитесь к ответу @jeckep, запустите его в каталоге, который вы хотите удалить.
источник
Попробуйте https://github.com/voidcosmos/npkill
он найдет все node_modules и позволит вам удалить их.
источник
Я столкнулся с этим решением,
find
и укажите имя папки.-exec rm -rf '{}' +
выполните следующую команду для рекурсивного удаления папок
find /path -type d -name "node_modules" -exec rm -rf '{}' +
источник
bash
функция для удаленияnode_modules
. Онnode_modules
рекурсивно удалит все каталоги из текущего рабочего каталога при печати найденных путей.Вам просто нужно вставить где-нибудь в свой
$PATH
rmnodemodules(){ find . -name 'node_modules' -type d -prune -exec echo '{}' \; -exec rm -rf {} \; }
источник
Это действительно хорошо работает
find . -name "node_modules" -exec rm -rf '{}' +
источник