美文网首页
vue + echart4.0 按需引入

vue + echart4.0 按需引入

作者: R_X | 来源:发表于2022-11-14 15:25 被阅读0次

    一、echarts4.0 按需引入需要先自定义构建

    1、现在项目src 目录下新建vendor(可以自己随便建就行,等会要用到)目录

    2、在src/vendor 目录下新建echarts.custom.js

    我项目中只需要用到柱状图markPointtooltip,可以根据自己的需要在这里填写相应组件。

    export * from 'echarts/src/echarts';
    import 'echarts/src/chart/bar';
    // 引入提示框和标题组件
    import 'echarts/src/component/tooltip';
    import 'echarts/src/component/markPoint';
    
    // import 'echarts/theme/macarons'; // echarts theme  
    

    注意:
    1、不要引入这个 import 'echarts/theme/macarons'; // echarts theme ,引入它以后按需引入就失效了,不晓得为什么。
    2、我们引入 echarts 组件时,可以从 echarts/src 也可以从 echarts/lib 引入,但是同时只能存在一种方式,这里要注意。

    3、自定义构建

    我是直接使用 node_modules/echarts 包里自带的构建工具:

    官方给出的几个常用参数:

    • -i:代码入口文件,可以是绝对路径或者基于当前命令行路径的相对路径。
    • -o:生成的 bundle 文件,可以是绝对路径或者基于当前命令行路径的相对路径。
    • --min:是否压缩文件(默认不压缩),并且去多余的打印错误信息的代码,形成生产环境可用的文件。
    node node_modules/echarts/build/build.js --min -i src/vendor/echarts.custom.js -o src/lib/echarts.custom.min.js
    

    在使用过程中可能会报错下面几个错:

    1)、提示你缺少下面三个依赖包,你只需要 安装一下就行,记得安装在 devDependencies里面。
    "rollup": "^3.3.0",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-uglify": "^6.0.4",
    
    2)、TypeError: uglifyPlugin is not a function

    直接修改: node_modules/echarts/build/config.js 文件,将 uglifyPlugin 改成数组

    在这里插入图片描述
    然后重新执行上面的构建命令
    3)、 Error: [BABEL] unknown file: Preset /* your preset */ requires a filename to be set when babel is called directly, 在这里插入图片描述

    只需要将 babel.config.js 中的 presets 内的内容注释掉即可。

    构建完成以后,会生成: /src/lib/echarts.custom.min.js

    4、在页面文件中引入自定义构建的echarts

    <template>
        <div
            :class="className"
            :style="{height:height,width:width}"
        />
    </template>
    
    <script>
        // 直接引入自定义构建后的包即可,其他的不用再引入了。
        import echarts from '@/lib/echarts.custom.min';
        export default {
            data () {
                return {
                    chart: null
                };
            },
            mounted () {
                this.chart = echarts.init(this.$el);
            }
        };
    </script>
    

    5、重启项目

    记得把 babel.config.js 中的 presets 内注释掉的内容还原回来,刚才注释只是为了自定义构建echarts组件。

    6、打包测试一下

    在这里插入图片描述

    没有按需引入的时候,echarts相关的包都引入进来了,这个大小大约为509k,这一下少了一半。

    相关文章

      网友评论

          本文标题:vue + echart4.0 按需引入

          本文链接:https://www.haomeiwen.com/subject/pjvlxdtx.html