6

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

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

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

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

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

4

1 回答 1

2

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

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

于 2013-05-31T00:42:25.090 回答