猫码程序员让前端飞

16、webpack从0到1-tree shaking

2020-03-24  本文已影响0人  ComfyUI

tree shaking,这个还是一个比较重要的一个东西吧,可以大大的优化你的项目。
git仓库:webpack-demo

1、是什么?

因为ES6模块是运行时加载(静态加载),即可以在编译时就完成模块加载,使得编译时就能确定模块的依赖关系,可以进行可靠的静态分析,这就是tree shaking的基础。
CommonsJs必须在跑起来运行的时候才能确定依赖关系,所以与不能tree-shaking
-- 参考阮大神的讲解-->Module 的语法
概述

2、配置开发环境

mode: 'development',
optimization: {
  usedExports: true,
},
{
  "name": "webpack-easy-demo",
+ "sideEffects": false,
}

Ensure no compilers transform your ES2015 module syntax into CommonJS modules (this is the default behavior of the popular Babel preset @babel/preset-env - see the documentation for more details).
要确保没有编译器把es6的语法转换为require这种commonJs的这种写法,但是babel的这个@babel/preset-env配置的默认行为就是如此。

{
   loader: "babel-loader",
   options: {
     presets: [
        [
          "@babel/preset-env",
          {
            useBuiltIns: "usage",
            corejs: { version: 3, proposals: true },
+           // 禁止将import/export转为require写法
+           modules: false
          }
        ]
      ]
   }
}

3、配置生产环境

4、小结

上一篇下一篇

猜你喜欢

热点阅读