飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

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:578518

评论

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

字节跳动基于 ClickHouse 优化实践之“查询优化器”

字节跳动数据平台

OLAP Clickhouse 查询优化 数据库开发 数据引擎

最常见的两个Jenkins问题,以及解决方法

龙智—DevSecOps解决方案

ci CI/CD CI/CD管道

技术分享 | Frida 实现 Hook 功能的强大能力

霍格沃兹测试开发学社

GOPS现场 | 对话龙智董事长何明,探讨DevOps安全新概念

龙智—DevSecOps解决方案

运维 GOPS大会 GOPS全球运维大会

技术分享 | 专项测试技术初识Hook

霍格沃兹测试开发学社

技术分享 | 想测试入门就必须要懂的软件开发流程

霍格沃兹测试开发学社

入门机器学习?还是先抢救一下数学吧!

博文视点Broadview

校区多,客情管理难?看中进教育使用明道云的新解法

明道云

技术分享 | 测试人员必须掌握的测试用例

霍格沃兹测试开发学社

AntDB最新成果亮相全球分布式云大会,推动企业数字化变革深入

亚信AntDB数据库

AntDB

网络组件axios可以在OpenHarmony上使用了

OpenHarmony开发者

Open Harmony

Http/Https插件使用指南

大河

https HTTP Data ETL bboss

技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?

霍格沃兹测试开发学社

Kyligence 亮相 Gartner 2022 数据与分析峰会,解锁数据智能新潜力

Kyligence

数据管理 指标中台

Elasticsearch添加修改删除索引文档

大河

elasticsearch bboss

这份SVN命令备忘清单,请查收

龙智—DevSecOps解决方案

svn 版本控制系统

bboss http负载均衡器使用指南

大河

HTTP bboss httpproxy

技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?

霍格沃兹测试开发学社

NFT平台开发:NFT数字馆藏平台开发

开源直播系统源码

数字藏品软件开发 数字藏品开发 数字藏品系统

兆骑科创人才引进服务平台,线上直播路演,投融资对接

兆骑科创凤阁

bboss数据同步ETL工具介绍

大河

elasticsearch ETL bboss

兆骑科创创新创业服务平台,海内外高层次人才引进,赛事承办

兆骑科创凤阁

移动端App自动化之触屏操作自动化

霍格沃兹测试开发学社

如何建立开源战略

龙智—DevSecOps解决方案

开源 漏洞修复 漏洞检测 漏洞管理

快速上手Elasticsearch bboss restclient

大河

elasticsearch bboss restclient

使用 vue 开发 YonBuilder移动开发应用的教程

YonBuilder低代码开发平台

厚积薄发--一文带您了解阿里云 RocketMQ 轻量版消息队列(MNS)

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

如何应对ITSM难题,打造现代化、高效的ITSM解决方案?

龙智—DevSecOps解决方案

ITSM ITSM软件 ITSM解决方案

技术分享 | 测试平台开发-前端开发之数据展示与分析

霍格沃兹测试开发学社

节能环保LED显示屏为什么是未来发展趋势?

Dylan

LED显示屏 led显示屏厂家

BulkProcessor异步批处理组件使用

大河

elasticsearch bboss bulkprocess

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