Bower和Grunt工作流程

Pra*_*ant 6 minify gruntjs bower

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

  1. 运行bower install以安装所有项目资产依赖项.
  2. 运行grunt将所有js文件从bower组件文件夹复制到新的js文件夹,并将所有css文件复制到新的css文件夹.
  3. 进一步使用grunt任务来连接和缩小新文件夹中的所有js和css文件,并将它们放在dist文件夹中.
  4. 从HTML中参考dist文件夹中的最终缩小的css和js.

我当然不希望在我的grunt任务中执行的一件事是执行特定于依赖项的任务,例如从bootstrap文件夹中获取所有js文件到新的js文件夹,然后将所有js文件从prettyphoto文件夹中获取到新的js文件夹中.我希望grunt任务尽可能通用,以便我可以在任何项目中使用相同的gruntfile,无论bower依赖项可能是什么样子.原因是如果我应该花费所有时间为每个项目编写我的gruntfile,为什么我不会以传统方式获取所有依赖项的源代码.

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

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

imj*_*red 2

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

我发现的一个缺点是 usemin 任务相当慢,但希望如果实现了这个拉取请求,事情会变得非常非常快。