有没有办法让bower在从GitHub克隆后运行包grunt?
我正在尝试使用Bower,但我使用的其中一个软件包是Bootstrap扩展,x-editable。 问题是,虽然其他软件包将完全构建的版本推送到github,所以当由Bower安装时,你有一个内置版本x-editable,希望你运行一个grunt文件来构建软件包。
这是其他包管理器的常见做法,比如npm,但我可以找到如何让Bower在安装时构建它。这意味着我需要另一种机制来完成软件包的安装。
答案 0 :(得分:23)
构建安装是一种反模式,强烈建议在Node中使用。像Node一样,Bower软件包应该是预先构建的。这是因为最终用户不必关心软件包需要的预处理器或构建系统。
您最好的选择是说服作者预先构建,分叉并自行完成,或者在安装组件后手动构建。
Bower团队计划添加将包发布到服务器的功能,类似于它在npm中的工作方式。这将使需要构建步骤的包更好。
答案 1 :(得分:4)
凉亭里有3个挂钩,如果出于任何原因你不能像@Sindre Sorhus那样预先建造,postinstall可以解决你的问题。
在.bowerrc中:
{
"scripts": {
"preinstall": "<your command here>",
"postinstall": "<your command here>",
"preuninstall": "<your command here>"
}
}
答案 2 :(得分:-2)
您可以使用composer处理安装后的内容:
<强> 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编译器处理.less文件并在我的公共文件夹中放置一个不错的bootstrap.css
。使用Closure Compiler可以为JavaScript文件做类似的事情。