浅析Webpack工作原理

webpack可以看成一个项目打包机,他会先将浏览器不能识别的格式如sass, less等转换成浏览器可识别的css共浏览器使用,在3.0之后webpack还加入了优化项目的责任

  1. 打包,可以把多个同类型文件压缩成一个文件,从而减少带宽压力
  2. 转换,通过loader把扩展语言转换成浏览器可以识别的文件类型
  3. 优化, 提升页面性能

常用的基本配置:

  1. entry项目入口,字符串或对象
  2. output项目出口,一个对象
  3. module, 模块的处理,loader在这里工作
  4. plugin, module不能做的在这里处理,比如去注释,图片压缩imagemin, 清空文件夹clean等
  5. devServer, 开启本地服务器
  6. devtool, 生成sourcemap文件等
  7. watch, 持续监听文件变化 reload

常用配置:

  1. commonsChunkPlugin, 分离第三方包,减小打包体积。原理是提取出被重复引用的第三方文件,单独打包,可以避免在多个入口重复打包
  2. 小图片优化 url-loader, 将小图转化成base64,防止小图太多需要多次请求。

Tree Shaking

在ES6的import中,当我们引入一整个文件时很可能真正需要的只是其中的几个方法,那么有没有办法去除冗余的代码吗? 答案就是tree shaking

首先明确一下tree-shaking是不支持动态导入的(require),只能是用静态导入的import

他的原理是先标记出模块导出值中哪些没有被用过,再删掉这些没被用过的导出语句


Posted

in

by

Tags: