项目优化:echarts与lodash的按需加载
由于项目历史遗留, echarts与lodash都是全部打包到vendor里面的,但是显然我们并不需要全部的功能,希望改成按需加载的方式,记录下改造的过程。
首先是echarts:
最开始所有组件都是1
import echarts from 'echarts'
这样的引入方式,按照官网的按需引入方法改成类似1
2
3
4import echarts from 'echarts/lib/echarts'
require('echarts/lib/chart/bar')
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
这样的样子,但是组件太多,这样的方法手工改明显不可取,而且往后还要使用echarts的时候也还需要这样繁琐的引入,明显不是我们所需要的样子,思考了下,新建了一个echarts.js
文件,在里面批量引入所需要的echarts组件再导出,这样明显会好很多:1
2
3
4
5
6
7export default Promise.all([
import(/* webpackChunkName: "echarts" */ 'echarts/lib/echarts'),
import(/* webpackChunkName: "echarts" */ 'echarts/lib/chart/bar'),
import(/* webpackChunkName: "echarts" */ 'echarts/lib/component/tooltip'),
import(/* webpackChunkName: "echarts" */ 'echarts/lib/component/title'),
])
所有需要引入echarts的组件引入这个文件就ok啦,如果需要增加echarts组件的引入,只需要在这里加就好,很方便。
其次是lodash:
还是历史遗留,import _ from 'lodash'
与var _ = require('lodash')
交杂其中,所幸require
写法的不多,将其改为import
的写法,然后引入babel
插件babel-plugin-lodash
,一步到位。