Bower和Grunt工作流程

时间:2013-05-30 21:06:25

标签: minify gruntjs bower

我只想对我的工作流程发表意见。我知道Yeoman并且故意决定不使用它。我的工作流程如下:

  1. 运行bower install以安装所有项目资产依赖项。
  2. 运行grunt,将所有js文件从bower组件文件夹复制到新的js文件夹,将所有css文件复制到新的css文件夹。
  3. 进一步使用grunt任务连接和缩小新文件夹中的所有js和css文件,并将它们放在dist文件夹中。
  4. 请参阅HTML中最终缩小的css和dist文件夹中的js。
  5. 在我的grunt任务中我当然不想做的一件事是执行特定于依赖项的任务,例如从bootstrap文件夹中获取所有js文件到新的js文件夹,然后从prettyphoto文件夹中获取所有js文件到新的js文件夹中。我希望grunt任务尽可能通用,以便我可以在任何项目中使用相同的gruntfile,无论bower依赖项可能是什么样子。原因是如果我应该花费所有时间为每个项目编写我的gruntfile,为什么我不会以传统方式获取所有依赖项的源代码。

    所以有一个grunt-contrib-copy插件可以将文件从一个地方复制到另一个地方,我用来从bower的components文件夹中获取所有js文件。问题是大多数凉亭组件都带有常规的js和缩小版本。所以,我正在复制它们并连接和丑化它们。重复代码!

    我的工作流程有意义吗?是这样,我怎样才能摆脱上面段落中提到的问题?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你应该看看grunt-usemin。您可以在<!-- build:js js/foo.js -->中包装js标记。包中包含的useminPrepare任务将循环遍历任何脚本(或css或图像等),并将它们动态添加到concat或uglify任务中。

我发现的一个缺点是usemin任务相当慢,但希望如果实现this pull request,事情会变得更快,更快。