组件库支持按需加载
type
status
date
slug
summary
tags
category
icon
password
Blocking
Blocked by
top
URL
Sub-item
Parent item
按需引入
直接指明组件的具体位置。
通过babel插件
使用
babel插件是目前大多数组件库实现按需引入的方式。ElementUI使用的是babel-plugin-componentantd 使用的是babel-plugin-import原理:利用babel将全局import代码转换为按需引入代码
Tree Shaking
利用
esm 支持静态编译的特性,在编译阶段利用AST做死区分析,将无用的代码删掉。操作:
- 首先组件库需要输出
es modules模块规范,
- 在
package.json中配置sideEffets和module module:指明esm的入口文件sideEffets: 指明具有副作用的文件,比如一些全局样式文件,不会被Tree Shaking删掉。
- 使用者需要使用支持tree Shaking的打包工具,例如
webpack或roolup,开启tree-sharking。

