组件库支持按需加载
type
status
date
slug
summary
tags
category
icon
password
Blocking
Blocked by
top
URL
Sub-item
Parent item
按需引入
直接指明组件的具体位置。
通过babel插件
使用
babel
插件是目前大多数组件库实现按需引入的方式。ElementUI
使用的是babel-plugin-component
antd
使用的是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。