打包与 Tree Shaking(Vite/Webpack/Rollup)
- Tree Shaking 前提:ESM 静态导入、无副作用;
- 标注副作用:
package.json
中 sideEffects: false | ["*.css", "polyfills.js"]
;
- Vite 基于 ESBuild/Rollup,开发快、生产用 Rollup 打包;
- Webpack 侧:开启
optimization.usedExports
、concatenateModules
、splitChunks
;
- Rollup 偏库打包,产物精简。
调试 Tree Shaking