19

所以我一直在阅读GulpGrunt,以及它们如何缩小代码、压缩文件、将文件合并为一个、livereload 等。然而,Meteor已经用Isobuild完成了所有这些。

我问的原因是有人建议将 Gulp 与 Meteor 一起使用,我认为没有必要。我应该与 Meteor 一起运行 Gulp 的一些可能原因是什么?或者它只是多余的?

如果不是多余的,那么 Gulp 有哪些 Isobuild 中没有的功能?Meteor 团队是否计划将 Gulp 整合到其下一个版本中?

4

1 回答 1

31

需要可能不是正确的词。不管你愿不愿意,那就是另一回事了。

正如上面提到的评论,Meteor 包含一个非常聪明的构建系统,称为 isobuild,它为您构建您的整个应用程序。但在某些情况下,您可能希望自己的任务最好通过 grunt 或 gulp 来完成。(你可以用这些完成的任务范围是惊人的,所以我只列出几个简单的常见例子。)

最明显的是要放在公用文件夹中的资产。但这远不是您可能希望在更大的项目中自动化的详尽任务列表。

  • 不使用 libsass 编译器编译 SASS 文件(因为它不支持所有功能)
  • 压缩和优化图像、svg 文件、网站图标等。
  • 创建多种尺寸/版本的图像
  • 创建精灵表
  • 以您自己的顺序/方式连接和缩小脚本
  • 与 Bower 结合来管理通过大气等无法获得的前端包。

我处理它的方法是将所有这些都放入私有文件夹中,因此流星 isobuild 构建系统可以避免它。

我相信这些是不考虑 Gulp 或 Grunt 多余的充分理由,并且 grunt 或 gulp 可能执行的任务范围如此之多,以至于无法在此处全部列出。不用说,IsoBuild 的功能非常棒,但不会用这些任务运行器取代所有可能的东西,据我所知,没有计划将 Gulp 合并到 IsoBuild 中。IsoBuild 是 Meteor 的核心,gulp 和 grunt 是非常强大的自动化工具,具有数千种可能的用途。

这是一个非常棒的 gulp 入门,上手超级简单: NodeJitsu Gulp 教程

因此,当然,您不需要grunt 或 gulp,但它们肯定可以在您的流星项目中占有一席之地,并且它们绝对是值得掌握的工具,可以简化您的开发流程。

如果您想使用 grunt 或 gulp,这就是我处理项目结构的方式:

Project-folder
    |__ webapp  // my meteor app lives here
    |__ assets  // scss / images / svgs
    |__ node_modules
    | gruntfile.js
    | .eslintrc
    | package.json

然后我构建、缩小和处理我的资产,我的目标目录位于webapp/public

请注意,随着 Meteor@1.3 提供完整的 npm 支持,这可能会改变,尽管我不清楚我们是否能够将它移动到项目中。

于 2014-12-21T13:21:22.863 回答