速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

评论

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

【量化】量化交易入门系列4:经典的量化交易策略(下)

恒生LIGHT云社区

量化策略 量化投资 量化交易 量化

浅谈云上攻防——云服务器攻防矩阵

腾讯安全云鼎实验室

云原生 云上安全攻防

使用 Amazon Redshift ML 构建多分类模型

亚马逊云科技 (Amazon Web Services)

存储

Redis 使用 List 实现消息队列有哪些利弊?

码哥字节

redis 消息队列 Redis 6.0 1月月更

知乎基于Palo的用户画像和实时数仓构建实践

百度开发者中心

大数据

Amazon SageMaker Data Wrangler 简化数据准备过程,助力机器学习

亚马逊云科技 (Amazon Web Services)

存储

【网络安全】红蓝攻防:shellcode的分析

H

网络安全 WEB安全

如何用建木CI构建/发布建木Hub节点定义版本

Jianmu

DevOps CI/CD 开源项目 发送邮件 检查系统服务

青藤:业务迁移到容器云上的6个注意事项

青藤云安全

C++太难学,怎么破?这本书给你指点迷津!

图灵教育

c++ 编程 入门

VuePress 博客优化之添加数据统计功能

冴羽

JavaScript Vue 前端 博客 vuepress

全球最大规模中文跨模态生成模型文心ERNIE-ViLG来了!

百度大脑

人工智能

敏捷真的是开发者的绊脚石吗?

LigaAI

敏捷开发

美容院CRM系统解决方案

低代码小观

CRM 客户关系管理 CRM系统 客户关系管理系统 企业管理工具

活动预告 | OpenMLDB Meetup No.1

第四范式开发者社区

人工智能 机器学习 开源

应用营销策略知多少?

坚果

产品设计 1月月更

使用 esbuild 来打包一个 React 库

CRMEB

workflow 之 Luigi 3.x 基本用法(qbit)

qbit

工作流 pipeline workflow 数据流

常用开源监控系统分析推荐(必备知识)|附优质监控书籍资源

云智慧AIOps社区

安全 监控宝 监控工具 开源软件 运维管理

以搭建Vuepress文档为例,展示用VSCode来远程开发

为自己带盐

vscode 1月月更 远程开发

如何利用Spot,成本与稳定同时兼得

jinjin

spot 热池 spotmax

Office2021 和Microsoft 365分不清?这样选最划算

淋雨

Office 365

龙蜥的朋友圈又大了!知名数据库产品服务商南大通用加入社区

OpenAnolis小助手

开源 社群

云原生训练营毕业总结

白开水又一杯

云原生

通用数据保护条例的监管下,你的数据湖“断舍离”了吗?

亚马逊云科技 (Amazon Web Services)

存储

26个主流机器学习算法的实现,获4万好评,这本机器学习宝典终于来了!

图灵教育

机器学习 代码 公式

手淘 Android 帧率采集与监控详解

阿里巴巴终端技术

android 性能优化 移动开发 客户端

LabVIEW感兴趣区域分析(实战篇—1)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 感兴趣区域分析 ROI

SphereEx 创始人张亮荣获『2021 年度海纳奖——分布式数据库十佳实践人物』

SphereEx

数据库 开源 ShardingSphere SphereEx 海纳奖

如何使用 Amazon S3 多区域访问点提高多区域应用程序的性能速度和可用性

亚马逊云科技 (Amazon Web Services)

不听话的 Container

百瓶技术

flutter 布局与组件

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