first commit
This commit is contained in:
95
view/catch-admin/docs/load-on-demand.md
Normal file
95
view/catch-admin/docs/load-on-demand.md
Normal file
@@ -0,0 +1,95 @@
|
||||
按需加载 减小打包
|
||||
====
|
||||
|
||||
|
||||
|
||||
## 按需引入组件依赖
|
||||
|
||||
`Ant Design Pro Vue` 默认编码工作并不支持按需引入,不过可以通过以下操作结合 [Ant Design Of Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/) 官方文档来进行按需引入。
|
||||
|
||||
- 增加项目按需引入依赖
|
||||
- 修改引入组件方式
|
||||
|
||||
|
||||
|
||||
1. 增加按需引入所需依赖 `babel-plugin-import`
|
||||
并且修改文件 `babel.config.js`
|
||||
```ecmascript 6
|
||||
module.exports = {
|
||||
presets: [
|
||||
'@vue/app'
|
||||
],
|
||||
plugins: [
|
||||
[ "import", {
|
||||
"libraryName": "ant-design-vue",
|
||||
"libraryDirectory": "es",
|
||||
"style": "css"
|
||||
} ]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
2. 修改引入组件方式 (注意,这只是一个例子,请完整引入你所需要的组件)
|
||||
|
||||
文件 `@/core/lazy_lib/component_use.js`
|
||||
|
||||
```javascript
|
||||
import Vue from 'vue'
|
||||
import {
|
||||
Input,
|
||||
Button,
|
||||
Select,
|
||||
Card,
|
||||
Form,
|
||||
Row,
|
||||
Col,
|
||||
Modal,
|
||||
Table,
|
||||
notification
|
||||
} from 'ant-design-vue'
|
||||
|
||||
Vue.use(Input)
|
||||
Vue.use(Button)
|
||||
Vue.use(Select)
|
||||
Vue.use(Card)
|
||||
Vue.use(Form)
|
||||
Vue.use(Row)
|
||||
Vue.use(Col)
|
||||
Vue.use(Modal)
|
||||
Vue.use(Table)
|
||||
Vue.use(notification)
|
||||
|
||||
Vue.prototype.$notification = notification;
|
||||
```
|
||||
|
||||
|
||||
3. 最后在 `main.js` 中引入 `@/core/lazy_use.js` 文件即可,如下
|
||||
|
||||
```javascript
|
||||
|
||||
import Vue from 'vue'
|
||||
import App from './App'
|
||||
|
||||
// 引入 按需组件的统一引入文件
|
||||
import './core/lazy_use'
|
||||
|
||||
import './style/index.less'
|
||||
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
new Vue({
|
||||
render: h => h(App),
|
||||
}).$mount('#app')
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 其他 减少打包大小
|
||||
|
||||
|
||||
|
||||
1. Ant Design Vue 1.2.x 版本起,采用的 ant-design 官方方案 svg Icon 组件,整个项目打包会变大很多,图标进行按需加载可参考 https://github.com/HeskeyBaozi/reduce-antd-icons-bundle-demo
|
||||
2. moment 按需加载 可参考 https://github.com/jmblog/how-to-optimize-momentjs-with-webpack
|
Reference in New Issue
Block a user