webpack 按需加载 异步加载模块方法 抽离

/* 按需模块定义 */
const lazyload = {
    'echarts-wordcloud': () => import(/* webpackChunkName: 'echarts-wordcloud' */ 'echarts-wordcloud'),
    'echarts-liquidfill': () => import(/* webpackChunkName: 'echarts-liquidfill' */ 'echarts-liquidfill'),
    'echarts-gl': () => import(/* webpackChunkName: 'echarts-gl' */ 'echarts-gl'),
    'echarts': () => import(/* webpackChunkName: 'echarts' */ 'echarts'),
    '@antv/g2': () =>  import(/* webpackChunkName: '@antv/g2' */ '@antv/g2'),
    '@antv/data-set': ()=> import(/* webpackChunkName: '@antv/data-set' */ '@antv/data-set')
}
/* 模块内容缓存 */ 
const moudleCatch = {};

/* 异步方法 */ 
export async function lazyloadMoudle(moudleName){
    if(moudleCatch.hasOwnProperty(moudleName)){
        return moudleCatch[moudleName]
    }else{
        if(lazyload.hasOwnProperty(moudleName)){
            try {
                const moudle = await lazyload[moudleName]()
                moudleCatch[moudleName] = moudle
                return moudleCatch[moudleName]
            } catch (error) {
                console.error('lazyload 异步获取moudle失败 =>', error)
                return undefined
            }
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容