Gulp和webpack的区别,是一种工具吗?

Posted 前端你别闹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gulp和webpack的区别,是一种工具吗?相关的知识,希望对你有一定的参考价值。

背景
最近收到很多童鞋的问题:gulp和webpack 什么关系,是一种东西吗?可以只用gulp,不用webpack吗 或者反过来?


基于此问
我简单归结了一下区别和概念,让需要的同学阅读理解,从而不把时间浪费到这种模糊不清的选择问题上!

gulp 是工具链、构建工具,可以配合各种插件做js压缩,css压缩,less编译 替代手工实现自动化工作。

1. 构建工具

2. 自动化
3. 提高效率用
webpack 是文件打包工具,可以把项目的各种js文、css文件等打包合并成一个或多个文件,主要用于模块化方案,预编译模块的方案。

1. 打包工具
2. 模块化识别
3. 编译模块代码方案用
Gulp
解释图【纯原创】转载请注明出处。

Gulp和webpack的区别,是一种工具吗?

Webpack
解释图【来自网络和官网】
Gulp和webpack的区别,是一种工具吗?

基于此问,来自知乎的一篇回答!够白话文了:
怎么解释呢?因为 Gulp 和 browserify / webpack 不是一回事

Gulp 应该和Grunt比较,他们的区别我就不说了,说说用处吧。Gulp / Grunt 是一种工具,能够优化前端工作流程。比如自动刷新页面、combo、压缩css、js、编译less等等。简单来说,就是使用Gulp/Grunt,然后 配置你需要的插件,就可以把以前需要手工做的事情让它帮你做了。

说到 browserify / webpack ,那还要说到 seajs / requirejs 。这四个都是JS模块化的方案。其中seajs / require 是一种类型,browserify / webpack 是另一种类型。

  • seajs / require : 是一种在线"编译" 模块的方案,相当于在页面上加载一个 CMD/AMD 解释器。这样浏览器就认识了 define、exports、module 这些东西。也就实现了模块化。

  • browserify / webpack : 是一个预编译模块的方案,相比于上面 ,这个方案更加智能。没用过browserify,这里以webpack为例。首先,它是预编译的,不需要在浏览器中加载解释器。另外,你在本地直接写JS,不管是 AMD / CMD / ES6 风格的模块化,它都能认识,并且编译成浏览器认识的JS。这样就知道,Gulp是一个工具,而webpack等等是模块化方案。Gulp也可以配置seajs、requirejs甚至webpack的插件。

不知道这样够清楚了么?



在最后,特别感谢,贺贺妹子(傻白甜),辛苦整理提供一些资料和配图,让我的文章更加生动和有趣。我想她一定是被我的颜值折服了吧!



 

我 最 帅!


长按扫码,关注小北哥哥





以上是关于Gulp和webpack的区别,是一种工具吗?的主要内容,如果未能解决你的问题,请参考以下文章

Gulp和Webpack工具的区别

Gulp和Webpack工具的区别

Webpack与GulpGrunt区别

webpack和gulp的区别

Gulp / Grunt和browserify / webpack之间的关系

简单理解gulp和webpack的区别