Подтвердить что ты не робот

Как сделать беседу построить пакет?

Есть ли способ заставить bower запустить пакет grunt после того, как он был клонирован из GitHub?

Я пытаюсь использовать Bower, но один из пакетов, которые я использую, является расширением Bootstrap, x-editable. Проблема в том, что, в то время как другие пакеты подталкивают полностью построенную версию к github, поэтому, когда вы устанавливаете Bower, у вас есть встроенная версия x-editable, вы можете запустить файл grunt для сборки пакета.

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

4b9b3361

Ответ 1

Основание на установке является анти-шаблоном и настоятельно рекомендуется в Node. Как и Node, пакеты Bower должны быть предварительно построены. Это связано с тем, что конечный пользователь не должен заботиться о том, какой препроцессор или система сборки требуется пакет.

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

Команда Bower планирует добавить возможность публикации пакетов на сервер, подобно тому, как это работает в npm. Это значительно улучшит пакеты, требующие этапа сборки.

Ответ 2

Есть 3 крючка в беседке, postinstall может решить вашу проблему, если по какой-либо причине вы не можете предварительно построить, как указывает @Sindre Sorhus.

В .bowerrc do:

{
    "scripts": {
        "preinstall": "<your command here>",
        "postinstall": "<your command here>",
        "preuninstall": "<your command here>"
    }
}

источник https://github.com/bower/bower/blob/master/HOOKS.md

Ответ 3

Вы можете использовать композитор для обработки post install:

bower.json:

{
    "dependencies": {
        "bootstrap": "*"
    }
}

composer.json:

{
    "scripts" : {
        "post-install-cmd" : [
            "bower install --no-color",
            "lessc bower_components/bootstrap/less/bootstrap.less public/script/bootstrap.css"
        ]
    }
}

Затем я запустил composer install:

Loading composer repositories with package information
Installing dependencies (including require-dev)
Nothing to install or update
Generating autoload files
bower warn Package bootstrap is still using the deprecated "component.json" file
bower cloning git://github.com/twitter/bootstrap.git
bower cached git://github.com/twitter/bootstrap.git
bower fetching bootstrap
bower checking out bootstrap#v2.3.2
bower warn Package jquery is still using the deprecated "component.json" file
bower copying C:\Users\renadm\AppData\Roaming\bower\cache\bootstrap\9d49e0aedf207bebd028e26cc86a9e58
bower cloning git://github.com/components/jquery.git
bower cached git://github.com/components/jquery.git
bower fetching jquery
bower checking out jquery#1.8.3
bower copying C:\Users\renadm\AppData\Roaming\bower\cache\jquery\29cb4373d29144ca260ac7c3997f4381
bower installing bootstrap#2.3.2
bower installing jquery#1.8.3

После завершения установки Bower компилятор LESS обрабатывает бездействующие файлы и помещает приятный bootstrap.css в мою общую папку. что-то подобное можно было бы сделать для файлов JavaScript с Closure Compiler.