有没有办法让 bower 在从 GitHub 克隆后运行包 grunt?
我正在尝试使用 Bower,但我正在使用的包之一是 Bootstrap 扩展,x-editable。问题是,当其他包将完全构建的版本推送到 github 时,当由 Bower 安装时,你有一个构建版本 x-editable 期望你运行一个 grunt 文件来构建包。
这是其他包管理器(如 npm)的常见做法,但我可以找到如何让 Bower 在安装时构建它。这意味着我需要另一种机制来完成包的安装。
有没有办法让 bower 在从 GitHub 克隆后运行包 grunt?
我正在尝试使用 Bower,但我正在使用的包之一是 Bootstrap 扩展,x-editable。问题是,当其他包将完全构建的版本推送到 github 时,当由 Bower 安装时,你有一个构建版本 x-editable 期望你运行一个 grunt 文件来构建包。
这是其他包管理器(如 npm)的常见做法,但我可以找到如何让 Bower 在安装时构建它。这意味着我需要另一种机制来完成包的安装。
基于安装构建是一种反模式,强烈建议不要在 Node.js 中使用。像 Node 一样,Bower 包应该是预先构建的。这是因为最终用户不必关心软件包需要什么预处理器或构建系统。
您最好的选择是说服作者预先构建、分叉并自己完成,或者在安装组件后手动构建。
Bower 团队计划添加将包发布到服务器的功能,类似于它在 npm 中的工作方式。这对于需要构建步骤的包来说会更好。
bower 中有 3 个钩子,如果由于某种原因您不能像 @Sindre Sorhus 指出的那样预先构建,postinstall 可能会解决您的问题。
在 .bowerrc 中:
{
"scripts": {
"preinstall": "<your command here>",
"postinstall": "<your command here>",
"preuninstall": "<your command here>"
}
}
您可以使用 composer 来处理安装后:
bower.json:
{
"dependencies": {
"bootstrap": "*"
}
}
作曲家.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 文件并将 nicebootstrap.css
放入我的公用文件夹中。可以使用 Closure Compiler 对 JavaScript 文件执行类似的操作。