Vue3+TS+Ant Design按需加载
- 安装
cnpm i --save ant-design-vue@next
cnpm install babel-plugin-import --save-dev
- 编写Ant配置文件
import { Button, Input, Steps, Form, Select, Row, Radio, DatePicker, Col, Icon, Checkbox, Switch } from 'ant-design-vue'
const ant = {
install(Vue: any) {
Vue.component(Button.name, Button)
Vue.component(Input.name, Input)
Vue.component(Steps.name, Steps)
Vue.component(Form.name, Form)
Vue.component(Select.name, Select)
Vue.component(Row.name, Row)
Vue.component(Radio.name, Radio)
Vue.component(DatePicker.name, DatePicker)
Vue.component(Col.name, Col)
Vue.component(Icon.name, Icon)
Vue.component(Checkbox.name, Checkbox)
Vue.component(Switch.name, Switch)
// 以后想引入什么就引入什么
}
}
export default ant
- 配置babel.config.js
先确认自己安装了 less与less-loader
cnpm install less less-loader --save
babel.config.js
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
plugins: [
[
"import",
{ libraryName: "ant-design-vue", libraryDirectory: "es", style: "css" } // 注意如果没有less-loader得自己装一下
]
]
};
- 修改tsconfig.js
- 配置main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 引入css
import 'ant-design-vue/dist/antd.css';
// 引入Antd配置文件
import Antd from './plugins/Ant'
const app = createApp(App)
app.use(Antd)
app.use(store).use(router).mount('#app')
- 测试
<a-button type="primary">按钮</a-button>
配置成功