Иногда полезно перестроить весь сайт и заставить 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, поэтому это не так просто, как просто удалить папку.
Было бы здорово, если бы я смог удалить все существующие компоненты боувера в качестве предварительного шага, чтобы сделать эту работу.
Итак... вернемся к вопросу: можно ли это сделать с беседкой?