将echarts版本从版本4..1.0更新到版本-4.2.0-rc.2后出现Vuejs错误

时间:2018-12-06 14:22:24

标签: vuejs2 echarts vue-cli-3

我已经使用Vue-CLI在vuejs中创建了一个项目。我已经将echarts的版本从4.1.0更新到了4.2.0-rc.2。更新后,会发生以下错误:

  1. 在终端中显示错误:
  

在“ echarts / lib / echarts”中找不到“导出'默认'(导入为'echarts')

  1. 并在访问条形图页面上,它在控制台中显示错误为:
  

TypeError:无法分配为仅读取对象“#”的属性“ exports”

在更新echarts软件包之前,这是我的代码

  

vue.config.js文件

const path = require('path');
const webpack = require('webpack');

module.exports = {
  baseUrl: process.env.NODE_ENV == 'production' ? '/' :  '/',
  transpileDependencies: [
    /\bvue-echarts\b/,
    /\bresize-detector\b/
  ],
  configureWebpack: {
    plugins: [
      //jquery plugin
      new webpack.ProvidePlugin({
        $: 'jquery',
        jquery: 'jquery',
        'window.jQuery': 'jquery',
        jQuery: 'jquery'
      })
    ]
  }
}

更新echarts版本后,我用以下几行替换了一些代码行:

transpileDependencies: [
  /\/node_modules\/vue-echarts\//,
  /\/node_modules\/resize-detector\//
],

在更新这些行时,我已经解决了第一个错误。但是在echarts页面中,控制台中会出现以下错误:

  

已安装的挂钩中出现错误:“错误:组件series.bar不存在。请首先加载它。”

这是我的条形图文件:

    <template>
      <ECharts :options="bar" style="width:100%; height:300px"></ECharts>
    </template>

    <script>
      import ECharts from "vue-echarts/components/ECharts.vue";
      import "echarts/lib/chart/bar";
      import "echarts/lib/component/title";
      import { ChartConfig } from "Constants/chart-config";

      export default {
        components: {
          ECharts
        },
        data() {
          return {
            bar: {
             tooltip: {
             trigger: "axis"
            },
            color: [ChartConfig.color.danger],
            legend: {
             data: ["Series A"]
           },
           xAxis: {
             type: "category",
             boundaryGap: true,
             data: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"]
           },
           yAxis: {
             type: "value",
             axisLabel: {
             formatter: "{value} K"
           }
        },
        series: [
          {
            name: "Series A",
            type: "bar",
            data: [11, 11, 15, 13, 12, 13, 10]
          }
        ]
      }
    };
  }
};
</script>

如何删除这些错误。有关更多信息,请告诉我。 谢谢!

1 个答案:

答案 0 :(得分:0)

我最终得到了解决方案,因为我们不能混合使用commonjs和ES模块,所以发生了此错误。为了解决这个问题,我更新了babel.config.js文件:

// babel.config.js

module.exports = {
  presets: [
    ["@vue/app", {
      modules: "commonjs"
    }]
  ]
};

通过添加以上代码,您所有的ES模块代码都将被转换为commonjs,然后传递给webpack进行编译。