我爱编程

gulp vs webpack 该如何选择

2018-05-25  本文已影响17人  俊滔_b059

本文从以下几个方面来对gulp和webpack进行对比讨论

1. gulp简介
2. webpack简介
3. 两者优劣对比
4. 总结
前言: 什么是构建工具?

构建工具是一段自动根据源代码生成可使用文件的程序,构建过程包括打包、编译、压缩、测试等一切需要对源代码进行的相关处理。构建工具的目的是实现构建过程的自动化,使用它可以让咱们避免机械重复的劳动,从而解放我们的双手

1. gulp简介

官网定义:Gulp 致力于 自动化和优化 你的工作流,它是一个自动化你开发工作中痛苦又耗时任务的工具包。

也就是说,gulp处理的是日常工作中遇到的以下几个问题

2. webpack简介

官网定义:Webpack 是当下最热门的前端资源模块化 管理和打包 工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分割,等到实际需要的时候再异步加载。

webpack可以处理工作中以下问题

3. 两者优劣对比
Gulp Webpack
定位 基于流的自动化构建工具 一个万能模块打包器
学习难度 易于学习,易于使用,api总共只有5个方法 有大量新的概念和api,不过好在有详尽的官方文档
适用场景 基于流的作业方式适合多页面应用开发 一切皆模块的特点适合单页面应用开发
作业方式 对输入(gulp.src)的 js,ts,scss,less 等源文件依次执行打包(bundle)、编译(compile)、压缩、重命名等处理后输出(gulp.dest)到指定目录中去,为了构建而打包 对入口文件(entry)递归解析生成依赖关系图,然后将所有依赖打包在一起,在打包之前会将所有依赖转译成可打包的 js 模块,为了打包而构建
使用方式 常规 js 开发,编写一系列构建任务(task) 编辑各种 JSON 配置项
优点 适合多页面开发,易于学习,易于使用,接口优雅。 可以打包一切资源,适配各种模块系统
缺点 在单页面应用方面输出乏力,而且对流行的单页技术有些难以处理(比如 Vue 单文件组件,使用 gulp 处理就会很困难,而 webpack 一个 loader 就能轻松搞定) 不适合多页应用开发,灵活度高但同时配置很繁琐复杂。“打包一切” 这个优点对于 HTTP/1.1 尤其重要,因为所有资源打包在一起能明显减少浏览器访问页面时的资源请求数量,从而减少应用程序必须等待的时间。但这个优点可能会随着 HTTP/2 的流行而变得不那么突出,因为 HTTP/2 的多路复用可以有效解决客户端并行请求时的瓶颈问题。
结论 浏览器多页应用(MPA)首选方案 浏览器单页应用(SPA)首选方案
4. 总结
上一篇 下一篇

猜你喜欢

热点阅读