antd官方只给出了使用create-react-app建立但没有使用npm run eject
命令项目的按需引入办法,可是出于个性化定制,实际项目中不少都会运行npm run eject
命令。css
按需引入,须要使用插件babel-plugin-import
来完成,步骤以下:react
1.运行npm i -S babel-plugin-import
npm
2.打开根目录的package.js文件,添加babel的配置,以下:api
{
...
"browserslist":{...}
"jest": {...}
"babel": {
"presets": [
"react-app"
],
"plugins": [
[
"import",
{
"libraryName": "antd",
"style": "css"
}
]
]
},
"proxy": "http://api.xxx.cn"
...
}
复制代码
App.js全局引入Antd.cssbabel
在页面引入组件并使用antd
import {Button} from 'antd'
<Button>xxxx</Button>
复制代码
3.执行npm run build
命令app
4.对比打包出来的static文件夹,里面有css和js两个文件夹。按需引入之后css文件的整体大小会小不少,js代码则会增长一点。ui
使用babel-plugin-import
并配置"style": "css"
会把antd的css代码按需引入,因此css的会减小不少,那为什么js代码体积会增长呢?我的猜想是部分css代码被直接嵌入到js中了。spa