前端为何要进行打包和构建
代码相关
体积更小
tree-shaking
压缩
合并
懒加载
编译更高级语法 如:ES6及以上 TS Scss less
兼容性
错误检查
Polyfill
Postcss
eslint
工程相关
统一 ,高效的开发环境
统一构建流程以及产出标准
集成公司构建规范 ( 提测 上线等 )
为何Proxy不能被Polyfill
例:
class可以被Function模拟
Promise可以被CallBack模拟
Object.defineProperty并不能完美模拟Proxy
webpack优化构建速度
可用于生产
优化babel-loader
IgnorePlugin
noParse
happyPack
parallelUglifyPlugin
不可用于生产
自动刷新
热更新
DllPlugin
ES Module和 Commonjs区别
笼统讲:
ES Module静态引入 编译时引入
Commonjs动态引入 执行至引入
只有静态引入 才能静态分析 从而tree-Shaking