Как вы удаляете все свои пакеты боулинга?

Иногда полезно перестроить весь сайт и заставить bower переустановить новые версии всех пакетов в bower.json.

Однако, похоже, нет никакого способа сделать это:

Попытка # 1:

$ bower uninstall
bower not-installed 0

Нет, это работает только по принципу "один за другим", хотя чистая установка "bower install" использует bower.json.

Попытка # 2:

$ bower install -f -l 0
$

Нет, несмотря на '-f', это ничего не делает, если зависимости выполнены.

Попытка # 3:

$ rm -r bower_components
$

! Ах, победа!... подождите, что это?

rm: bower_components: No such file or directory

О, черт возьми, там есть .bowrc в этом проекте, который устанавливает каталог для установки вещей.

Мое настоящее ужасное решение:

Запустите пользовательский script, который:

- Parse .bowerrc if one exists
- Load the directory if one is specified in the json block
- If the directory currently exists...
- ...recursively delete the directory.

Это работает, я полагаю, но это довольно раздражает, нужно настраивать несколько раз.

Я что-то пропустил?

Нет ли простой команды bower для удаления локальных установленных модулей?

Похоже, что действительно базовая функциональность, которую я ожидал бы деинсталляции bower.

(На самом деле это не очень javascript вопрос, но я с радостью соглашусь с чем-то, что зацепляет в модуль bower как-то, чтобы это произошло в простой node script)

Контекст

Изменить: если вы хотите "мотивацию" для такой задачи, то это: у нас есть сервер jenkins, который строит наши проекты и запускает тесты. Тем не менее, периодически это происходит без видимой причины; это почти всегда потому, что jenkins использует предыдущую копию репозитория с помощью всего лишь git -pull для обновления до самой последней версии до создания и запуска тестов; в результате, существует предыдущий каталог bower_components, и он заполнен кешированными копиями различных компонентов.

Вот несколько примеров вещей, которые являются # @[email protected]# $'d и требуют, чтобы bower снова запускался как принудительная установка:

1) Некоторые идиот ( > _ > fitvids) удаляет предыдущую помеченную версию проекта.

2) Некоторые из проектов вышли из беседы/переместили страницу github

3) Некоторые проекты ( > _ > jquery) изменили способ размещения файлов в версии, не относящейся к основной версии.

Я понимаю, что "правильным" решением этой проблемы является: fix jenkins, поэтому он создает новый временный каталог для каждой сборки.... но это не под моим контролем.

Итак, в качестве шага сборки мне нужно автоматизировать способ удаления компонентов панели и принудительно их переустановить; либо в качестве задачи хрюкания (часть сборки), либо в процессе сборки jenkins. Однако помните из (3) выше, что наши проекты используют .bowerrc, поэтому это не так просто, как просто удалить папку.

Было бы здорово, если бы я смог удалить все существующие компоненты боувера в качестве предварительного шага, чтобы сделать эту работу.

Итак... вернемся к вопросу: можно ли это сделать с беседкой?

Ответ 1

Обновленный ответ

Если вы пытаетесь обновить все свои пакеты, используйте

$ bower update

Оригинальный ответ

Перейдите в файл bower.json и удалите все компоненты или библиотеки, которые вы хотите удалить из devDependencies.

После удаления тех, которые вы хотите удалить, выполните -

$ bower prune
  • начать с -

    "devDependencies": {
        "angular": "~1.2.15",
        "angular-ui-router": "~0.2.10",
        "moment": "~2.5.1"
    }
    
  • удалить angular ссылки из файла -

    "devDependencies": {
        "moment": "~2.5.1"
    }
    
  • выполнить

    $ bower prune
    
  • Следите, чтобы ваши зависимости angular были удалены.

Ответ 2

как насчет

  • отредактируйте файл bower.json
  • 'rm -Rf bower_components/*'
  • установка bower

Я пытался обновить до полимера 0.2.4 от 0.2.3. Я не могу найти быстрый способ удалить набор зависимостей. Поэтому я просто удалил эти полимерные * dir под bower_components. Но почему-то беседовал, помня, что у меня было 0.2.3 установленное событие с измененным bower.json. "Rm -Rf bower_component/*", похоже, делает трюки.

Ответ 3

На самом деле я делаю что-то немного сложнее, но это работает для меня:

  • for package in $(ls your_bower_components_folder); do bower uninstall "$package"; done;
  • bower install

Ответ 4

Удаление пакетов

Чтобы удалить пакет, вы можете использовать команду удаления, а затем имя пакета, который вы хотите удалить.

удаление bower

Можно удалить сразу несколько пакетов, указав имена пакетов.

bower uninstall jquery modernizr sass-bootstrap

Ответ 5

Адаптация Jumar Polanco answer, чтобы использовать его в Powershell, можно программно удалить компоненты боувера следующим образом:

В интерфейсе Powershell перейдите к местоположению, где расположена папка bower.json и bower_components. Обычно это корневая папка приложения.

Затем вы можете запустить:

foreach($package in ls bower_components){bower uninstall $package}

В зависимости от зависимостей пакетов может потребоваться дополнительное внимание к процессу, так как некоторые запросы, требующие дополнительного ввода (Y/n) для продолжения процесса, могут возникать (например, конфликты зависимостей).

Ответ 6

Я не знаю, какие инструменты сборки вы используете, но если он включает Grunt с grunt-bowercopy, вы можете использовать clean вариант. Он удаляет папку bower_components (или все, что вы настроили для ее использования) после копирования необходимых файлов.

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

Я также ищу лучшее решение для этого, поэтому я обновлю, если найду его.

Ответ 7

Я использовал nombom для этого (в качестве бонуса он также снова устанавливает ваши пакеты npm с нуля):

https://www.npmjs.com/package/nombom

Ответ 8

Это то, что в конечном итоге работает для меня с помощью командной строки Windows:

forfiles /p .\bower_components /c "cmd /c cd .. && bower uninstall @fname"