Bower和Grunt工作流程

6
我希望得到关于我的工作流程的意见。我知道Yeoman,但故意决定不使用它。我的工作流程如下:
  1. 运行bower install安装所有项目资产依赖项。
  2. 运行grunt,将所有js文件从bower组件文件夹复制到一个新的js文件夹中,将所有css文件复制到一个新的css文件夹中。
  3. 进一步使用grunt任务将来自新文件夹的所有js和css文件进行连接和压缩,并将它们放在dist文件夹中。
  4. 从HTML引用最终压缩的css和js文件。
我确定不想在我的grunt任务中执行特定于依赖项的任务,例如从bootstrap文件夹中获取所有js文件并将其放入新的js文件夹中,然后从prettyphoto文件夹中获取所有js文件并将其放入新的js文件夹中。我希望grunt任务尽可能通用,以便我可以在任何项目中使用相同的gruntfile,无论bower依赖项的样子如何。原因是如果我要花费所有这些时间为每个项目编写我的gruntfile,那么为什么不以常规方式获取所有依赖项的源代码。
因此,有一个grunt-contrib-copy插件可用于将文件从一个位置复制到另一个位置,我使用它从bower的组件文件夹中获取所有js文件。问题是大多数bower组件都带有常规js和压缩版本。因此,我复制它们并将它们连接和压缩。所以会出现重复代码!
我的工作流程有意义吗?如果有,如何解决我在上面段落中提到的问题?
1个回答

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

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


谢谢,我尝试了usemin,确实很棒。唯一的问题是,js和css文件的版本号并没有被创建。这在Windows机器上是一个已知的问题吗?我检查了我的配置,没有发现任何问题。 - Prashant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接