前端构建工具 grunt VS gulp

前几天一个前端大拿朋友和我说gulp比grunt更好用,就了解了一下gulp,和grunt做个简单的比较

有两个明显的感受:

(1)使用方式上,gulp的配置文件更清晰便利一些

以css文件的合并压缩为例

//------ gulp --------
var gulp = require('gulp'),
concat = require('gulp-concat'),
minifycss = require('gulp-minify-css');
gulp.task('default', function() {
  return
    gulp.src('css/*.css')
    .pipe(concat('min.css'))
      .pipe(minifycss())
      .pipe(gulp.dest('dist'));
});
//------ grunt --------
module.exports = function (grunt) {
  grunt.initConfig({
    concat: {//css文件合并
      css: {
        src: ['src/css/*.css'],
        dest: 'dest/all.css'
      }
    },
    cssmin: { //css文件压缩
       css: {
          src: 'dest/all.css',
          dest: 'dest/all.min.css' 
        }
     }
  });
  grunt.loadNpmTasks('grunt-css');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.registerTask('default', ['concat','cssmin']);
}

(2)从实现底层文件操作方式上,gulp的效率更高

grunt 的实现方式:

读取源文件 -> N个临时文件 -> 写入目标文件

从配置文件可以看到,每个任务都指定了src和dest,构建过程中会进行多次 读取、修改、写入 操作,I/O操作比较频繁

gulp 的实现方式:

读取源文件 -> 内存文件流 -> 写入目标文件

gulp使用了类似linux命令中的管道思路,开始时读取一次文件,然后就一直使用内存中的文件流,通过管道在不同任务中传递文件流,最后一次性写入文件,I/O操作较少

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nummy

python安装私有包

你想要安装一个第三方包,但是没有权限将它安装到系统Python库中去。 或者,你可能想要安装一个供自己使用的包,而不是系统上面所有用户。

1163
来自专栏小狼的世界

Mac环境下配置Tomcat+Eclipse

首先在 Tomcat官方网站 找到自己合适的版本,下载 tar.gz 版本的,下载完成后解压缩到一个目录,进入这个目录下的 bin 执行 startup.sh,...

1122
来自专栏小狼的世界

CentOS中设置系统级代理

proxy=http://username:password@proxy_ip:port/

1222
来自专栏散尽浮华

对比git rm和rm的使用区别

在这里说一下git rm和rm的区别,虽然觉得这个问题有点肤浅,但对于刚接触git不久的朋友来说还是有必要的。 用 git rm 来删除文件,同时还会将这个删除...

2188
来自专栏技术专栏

SpringBoot中H2内存数据库的使用

在开发测试过程中,由于种种原因,连接Mysql或者Oracle进行测试可能会产生很多问题,比如网络原因,线上数据库冲突以及性能等问题,这时候如果能将数据库跑在内...

1823
来自专栏Java开发

搭建 ElasticSearch 6.1.3分布式集群

先启动mac上的master,再启动Ubuntu上的slave节点,观察输出,会有一个node-102探测到master节点的提示:

1631
来自专栏运维小白

4.2 du命令

du命令 du命令,查看文件的大小 du命令用法 du -sh 目录/文件命令用法 du -sh 目录/文件 查看目录或文件的大小 [root@localh...

2159
来自专栏谈补锅

iOS项目groups和folder的区别(组和文件夹)

   在引用一个第三方框架的时候,已经拖进去了,但是引用框架里面的文件时,竟然报错说找不到.......查了一下,原来在拖进去时没有注意group和folder...

1283
来自专栏主机笔记

linux系统centos6永久修改主机名

一般情况下我们装了系统显示的主机名都很难看,改成自己喜欢的操作才更舒心。今天就介绍在linux下centos6系统下临时和永久修改主机名。 临时修改 首先介绍临...

3836
来自专栏用户2442861的专栏

linux进程常用命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

1303

扫码关注云+社区

领取腾讯云代金券