webpack4和webpack5的对比

667 阅读2分钟

写在前面的话

webpack是前端打包工具里的王者荣耀。

(一)打包,不止于webpack

前端打包工具还有Grunt,Gulp,Roleup等;

对比如下:

工具适用模式特点
GruntMPA老牌打包工具,基于文件为媒介(运行慢,零散的脚本文件一当多起来就受到影响
GulpMPA易学,基于 nodejs 的 steam 流打包
WebpackSPA目前最强大的打包工具,但是过于臃肿,如何单纯打包js不推荐
RoleupMPAtree-shaking特性(针对es6,按需打包,多余的不要,目前(2018,vuex,react主流使用)

(二)webpack的核心概念

  1. 入口(Entry):

入口(Entry)表示webpack以哪个文件为入口起点开始打包,构建内部依赖

  1. 输出(Output):

输出(Output)表示webpack打包后的资源bundles输出到哪儿去,以及如何命名

  1. 加载器(Loader):

Loader让webpack能够去处理那些非JavaScript文件的资源(webpack自身只理解JavaScript)

  1. 插件(Plugins):

插件(Plugins)可以用于执行范围更广的任务,插件的范围包括,从打包优化和压缩一直到重新定义环境中的变量等。

  1. 模式(Mode):

模式(Mode)表示webpack使用相应模式的配置

(三)webpack4和webpack5的对比

维度webpack4.Xwebpack5.X
版本4.X5.X
安装代码yarn add webpack@4.46.0 webpack-cli -Dyarn add webpack webpack-cli -D
script 配置'dev':"webpack --mode development "'dev':"webpack --mode development "
启动命令yarn devyarn dev
webpack-cli 版本3.X4.X
空项目-开发环境-构建时间1.74s0.87s
空项目-开发环境-main.js4KB1.24KB
代码透视CommonJS 包模块(闭包)(嵌套的)匿名函数;eval等
空项目-生产环境-构建时间970 B41B 
空项目-生产环境-main.js1.85s0.73s
打包原理polyfill.jsprepack(预编译)prepack.io/

参考链接

segmentfault.com/a/119000002…

juejin.cn/post/688659…

以上

写在最后

推荐一套TS全系列的教程吧。近期在提升TS,收藏了一套很不错的教程,无偿分享给大家 www.yidengxuetang.com/pub-page/in…