首先呢,webpack 是一个打包器。用于js 相关项目的打包。
它可以将不同模块打包成一个个资源文件;如果项目中,需要按需加载,它可以使用代码分割的功能,帮助实现资源的按需加载;通过使用webpack 的“loaders” 模块可以是 CommonJs, AMD, ES6 module, CSS, Images, JSON, Coffeescripy, LESS ...
如下,官网的图。左右的模块,被webpack 打包成右边各种资源文件。
webpack 的中文官网: https://webpack.docschina.org/
webpack 版本 功能进化
webpack v1
编译、打包;HMR(模块热更新);代码分割;文件处理
webpack v2
Tree Shaking(打包后代码更小,虽然引用了但未被使用的代码,会删掉); ES modile; 动态 Import; 新的文档
webpack v3
Scope Hoisting (作用域提升,其实是打包后代码运行速度的性能的提升); Magic Comments(配合动态 Import 使用)
webpack v4
以后来补上