仓库源文站点原文


title: 理解 Gulp 和 Webpack description: Gulp 和 webpack 之间的关系是十分暧昧的,却也经常被人误解,以为它俩是竞争关系,其实不然。 warning: true categories:


Gulp 和 webpack 之间的关系是十分暧昧的,却也经常被人误解,以为它俩是竞争关系,其实不然。

gulp & webpack<!--<source src="http://ww1.sinaimg.cn/large/6c0378f8gy1ff18pl2w55j21400m8tag.jpg">-->

<!--more-->

Gulp 是一个任务管理工具,让简单的任务更清晰,让复杂的任务易于掌控;而 webpack 的理念是,一切皆为模块,每个模块在打包的时候都会经过一个叫做 loader 的东西,它具备非常强大的精细化管理能力,主要解决的是依赖分析问题。

Gulp 的学习,搞清楚 gulp.src, gulp.dest, gulp.task, gulp.watch 四个 API 就差不多了,它的底层原理是使用 Node 的 Transform Streams,这是一个可读可写可做中间转换的 Streams 管道,由于从 src 到 dest 过程中,文件一直停留在 Streams 中,没有落地成为实体文件,所以整体运作效率非常高。

Webpack 概念很多,但搞清楚 entryoutputloader 三个关键点,基本上就可以解决简单的问题了,稍微复杂的场景主要包括对资源的合并处理、分拆处理、多次打包等,部分这样的问题可以使用插件辅助解决,但是 Webpack 的强大并不在文件处理,而是依赖分析,所以在流程操作特别复杂的情况,webpack 并不能胜任工作,往往会被作为 gulp 的一个 task,整体工作流交给 gulp 主导。

插件推荐

下面推荐几个 gulp 的插件吧,比较常用的:

也推荐几个 webpack 常用的 loader 和 plugin:

拓展阅读