写点什么

Gulp 的目标是取代 Grunt

  • 2014-02-14
  • 本文字数:1108 字

    阅读完需:约 4 分钟

Fractal 公司积极参与了数个流行 Node.js 模块的开发,它最近发布了一个新的构建系统 gulp ,希望能够取代 Grunt,成为最流行的 JavaScript 任务运行器。

根据 gulp 的文档,它努力实现的主要特性是:

  • 易于使用:采用代码优于配置策略,gulp 让简单的事情继续简单,复杂的任务变得可管理。
  • 高效:通过利用 node.js 强大的流,不需要往磁盘写中间文件,可以更快地完成构建。
  • 高质量:gulp 严格的插件指导方针,确保插件简单并且按你期望的方式工作。
  • 易于学习:通过把 API 降到最少,你能在很短的时间内学会 gulp。构建工作就像你设想的一样:是一系列流管道。

Gulp 通过流和代码优于配置策略来尽量简化任务编写的工作。这看起来有点“像 jQuery”的方法,把动作串起来创建构建任务。早在 UNIX 的初期,流就已经存在了。流在 Node.js 生态系统中也扮演了重要的角色,因此用 gulp 编写任务也可看作是用 Node.js 编写任务。当使用流时,gulp 去除了中间文件,只将最后的输出写入磁盘,整个过程因此变得更快。gulp 采用代码优于配置的策略,让简单的事情继续简单,将复杂的任务变得可管理。

与其他任务运行器一样,每个任务都可以是一个简单的工作单元:

复制代码
var gulp = require('gulp');
var uglify = require('gulp-uglify');
gulp.task('scripts', function() {
return gulp
.src(['src/js/**/*.js'])
.pipe(uglify())
.pipe(gulp.dest('build/js'));
});

或者有任务依赖:

复制代码
gulp.task('default-task', function(){
gulp.run('scripts');
// watch files and run scripts if they change
gulp.watch("./src/**/*.js", function(event {
gulp.run('scripts');
});
);

关于 Grunt,对它的抱怨除了过于冗长,还包括大量的插件做了他们不该做的工作。Mark Goodyear 在一篇博客中举了个例子,Grunt 的imagemin 插件不仅压缩图片,同时还包括缓存功能。他表示,在gulp 中,缓存是另一个插件,可以被别的插件使用,这样就促进了插件的可重用性。

查看 gulp 的代码库活动以及加星关注的人数,可以发现这个构建系统已经开始获得动力。它同时也引起了JavaScript 社区的兴趣:Yeoman 的首席开发者 Addy Osmani ,提交了一篇issue ,向团队成员介绍gulp 并评估其替换当前构建系统。 Sindre Sorhus 是 Yeoman 研发团队成员和 NPM 的主要贡献者,写了一篇关于gulp 的博客并在Twitter 上提到gulp:“比Grunt 速度更快、配置更少”。

原文英文链接: Gulp Aiming to Dethrone Grunt


感谢梅雪松对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-02-14 09:578292

评论

发布
暂无评论
发现更多内容

Java or Python?测试开发工程师如何选择合适的编程语言?

霍格沃兹测试开发学社

MySQL持续霸榜,《高性能MySQL》第4版追新巨献!

博文视点Broadview

前端几个常见考察点整理

beifeng1996

React

阿里新一代微服务,内部大佬手抄的笔记+脑图不容错过,全是精华

Geek_0c76c3

Java 数据库 开源 程序员 开发

vue面试常见考察点总结

bb_xiaxia1998

Vue

Vue.$nextTick的原理是什么-vue面试进阶

bb_xiaxia1998

Vue

【LeetCode】链表组件Java题解

Albert

算法 LeetCode 10月月更

扬帆出海,亚马逊云科技如何助力神策数据从0到1快速布局独立站出单?

Lily

对最近火热的“DevOps已死”的回应

Jianmu

DevOps 敏捷开发 软件危机 自动化运维

厉害!年薪近百万架构师保姆式讲解的这份Spring源码笔记,绝绝子

Geek_0c76c3

Java 数据库 开源 程序员 开发

已献出膝盖!GitHub上的宝藏级SpringBoot核心文档,讲得太清晰了

Geek_0c76c3

Java 数据库 开源 程序员 开发

测试过程中遇到的那些奇葩bug

霍格沃兹测试开发学社

有一说一!你背的MySQL八股文可能存在错误的结论

Java永远的神

MySQL 数据库 程序人生 Java 面试 架构师

防窜货管理如何更智能? VoneTracer新功能给你答案!

旺链科技

区块链 溯源 产业区块链

告诉你个广告业务存储神器

华为云开发者联盟

数据库 广告 华为云 企业号十月PK榜

视频中为什么需要这么多的颜色空间?

百度Geek说

计算机视觉 音视频 企业号十月 PK 榜

Springboot使用 prometheus监控

琦彦

监控 Prometheus springboot 10月月更

Github星标百万!终于有人将Spring技术精髓收录成册

Geek_0c76c3

Java 数据库 开源 程序员 开发

Google 测试总监聊如何经营成功的测试职业生涯

霍格沃兹测试开发学社

React-Hooks怎样封装防抖和节流-面试真题

beifeng1996

React

给想转Go或者Go进阶同学的一些建议

王中阳Go

php Go web java 编程 #go 10月月更

DAM的神奇力量,看亚马逊云科技如何助力特赞以内容驱动增长?

Lily

数据结构学习,链式队列

IC00

学习 数据结构 算法 学习笔记 10月月更

字节算法大神手写的算法笔记,曾连续多次霸榜 GitHub Trending 首页

Geek_0c76c3

Java 数据库 开源 程序员 开发

Vue是怎样监听数组的变化的?

bb_xiaxia1998

Vue

Serverless架构演进与实践

得物技术

云计算 架构 DevOps 云原生 10月月更

实例分析Scheduled Thread Pool Executor与Timer的区别

华为云开发者联盟

线程 开发 华为云 企业号十月PK榜

如何从 0 开始学 Python 自动化测试开发(一)

霍格沃兹测试开发学社

测试工程师六大能力模型

霍格沃兹测试开发学社

STM32L051测试 (四、Flash和EEPROM的读写)

矜辰所致

EEPROM Flash STM32L051 10月月更

C#使用Spire.PDF依赖,PDF转Word,Excel,Html代码分析

IC00

C# 学习 程序员 上位机 10月月更

Gulp的目标是取代Grunt_JavaScript_João Paulo Marques_InfoQ精选文章