写点什么

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

评论

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

月薪3K测试 vs 30K测开:差距在这3个技能​

测试人

软件测试

湖仓一体化(Lakehouse)指什么?有哪些应用场景?

镜舟科技

大数据 数据分析 LakeHouse StarRocks 湖仓一体

如何写出高质量的技术类文章?

RockBot

开发者 写作 成长

免费学AI!时习知助力华为人才在线商城开展【HCIA-AI Solution训练营2025】

YG科技

哈尔滨等保测评工作的首要任务

黑龙江陆陆信息测评部

Full GC 频率优化实战

vivo互联网技术

Java 后端 垃圾回收 系统优化

白鲸开源WhaleStudio与崖山数据库管理系统YashanDB完成产品兼容互认证

白鲸开源

数据库 认证 崖山数据库 白鲸开源 WhaleStudio

CSSBuy 淘宝代购系统搭建攻略

tbapi

淘宝代购系统 反向海淘系统

Arthas sm(查看已加载类的方法信息 )

刘大猫

监控 Arthas 监控工具 sm 阿里监控

KubeEdge边缘设备管理系列(六):Mapper-Framework开发示例

华为云原生团队

云计算 容器 云原生

NocoBase 本周更新汇总:联动规则条件左侧支持变量

NocoBase

开源 低代码 零代码 无代码 版本更新

AI与智能能源管理:如何通过AI优化能源分配和消耗?

天津汇柏科技有限公司

人工智能 AI

《Operating System Concepts》阅读笔记:p767-p776

codists

操作系统

有抱负的商科学生正借助AI培养战略性思维

财见

AI智上 | 智能会计:某大型商业地产管理公司领先实践

用友智能财务

PowerVerse:利用Web3激励机制实现算力去中心化

PowerVerse

NFT web3 去中心化云算力

户外全彩LED广告屏安装的注意要点

Dylan

LED LED display LED显示屏 户外LED显示屏 LED屏幕

新闻速递丨Altair 与 Databricks 达成合作,加速数据驱动型创新

Altair RapidMiner

人工智能 机器学习 数据分析 RapidMiner 数据准备

得物业务参数配置中心架构综述

得物技术

业务架构 构架

优化分支冲突的关键策略

柯杰

git 分支管理 协作开发

Sentieon软件发布V2020503版本

INSVAST

版本更新 基因检测 Sentieon 变异检测 生物信息分析服务

观测云产品更新 | 用户访问、基础设施、监控和事件等

观测云

产品迭代

立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务

阿里云大数据AI技术

大数据 spark 阿里云 Serverless EMR

ChatGPT与GPT的区别全解析:教你如何高效利用AI提升工作与营销效果

Y11

求职 招聘 大模型 大语言模型 失业

《Operating System Concepts》阅读笔记:p777-p777

codists

操作系统

金仓数据库同城双中心灾备方案

金仓技术

KingBase 金仓数据库

AI 赋能:破解中国就业新增长点,职场人如何借势起飞?

Y11

找工作 招聘 社招 实习 校招

CST表面等离子极化激元SPP --- 光脊波导与缝隙波导的转换

思茂信息

cst CST软件 CST Studio Suite

大模型向量数据库去重的N种实现方案!

王磊

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