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