Angular学习笔记47:解决Echart报错:ERROR Error: Component series.line not exists. Load it first.等问题

早晨起来,打开项目的,发现原来项目中好用的Echart 所有图表都不显示了。打开控制台发现,所有的报错了。

报错信息如下:
ERROR Error: Component series.line not exists. Load it first.
ERROR TypeError: Cannot read property ‘seriesTaskMap’ of null.
等信息。

ERROR Error: Component series.line not exists. Load it first.
    at Function.t.getClass (3.f38913693f61184a8720.js:1)
    at n.<anonymous> (3.f38913693f61184a8720.js:1)
    at Array.forEach (<anonymous>)
    at m (3.f38913693f61184a8720.js:1)
    at n.<anonymous> (3.f38913693f61184a8720.js:1)
    at Function.t.topologicalTravel (3.f38913693f61184a8720.js:1)
    at n.mergeOption (3.f38913693f61184a8720.js:1)
    at n.<anonymous> (3.f38913693f61184a8720.js:1)
    at n.resetOption (3.f38913693f61184a8720.js:1)
    at n.setOption (3.f38913693f61184a8720.js:1)
ERROR TypeError: Cannot read property 'seriesTaskMap' of null
    at 3.f38913693f61184a8720.js:1
    at Array.forEach (<anonymous>)
    at m (3.f38913693f61184a8720.js:1)
    at v (3.f38913693f61184a8720.js:1)
    at p.g.performDataProcessorTasks (3.f38913693f61184a8720.js:1)
    at W.update (3.f38913693f61184a8720.js:1)
    at W.ProS.V.resize (3.f38913693f61184a8720.js:1)
    at W.resize (3.f38913693f61184a8720.js:1)
    at t.resize (3.f38913693f61184a8720.js:1)
    at t.ngDoCheck (3.f38913693f61184a8720.js:1)

经排查原因发现:

ngx-echart 在6月14号更新了一个4.2的版本;

在这里插入图片描述

而我在构建发布的刚好是6月15号。可能是使用了新版本导致的。由于在本地开发的过程中,使用的是ngx-echart4.0的版本,所以没有出现这个问题。但是在发布上线的时候,重新进行了npm install,所有自动安装了4.2 的版本。

本地问题重现:

本地重现问题:
将package.json 中dependencies对象中的 ngx-echarts 、echarts 删除,重新安装:
根据官方文档重新安装,执行命令:

npm install echarts -S
npm install ngx-echarts -S
npm install @types/echarts -D

然后发现,问题重现。故推断是版本升级导致的问题。

在这里插入图片描述

解决方案:

  1. 修改 angular.json 文件
    删除原来引入在scripts中的
"node_modules/echarts/dist/echarts.min.js",
"node_modules/echarts/map/js/china.js",
"node_modules/echarts/dist/extension/bmap.js"
  1. 修改 tsconfig.json 文件
    将:paths中的echarts
"paths": {
      "echarts": [
        "node_modules/echarts/dist/echarts.min.js"
      ]
    }

修改为:

 "paths": {
      "echarts": [
        "lib/echarts.custom.min.js"
      ]
    },
  1. 在src目录下新建一个custom-echarts.ts文件
    custom-echarts.ts文件中引入项目中使用到的Echart
import 'echarts/lib/chart/line';
import 'echarts/lib/chart/pie';
import 'echarts/lib/chart/bar';
// component examples:
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
import 'echarts/lib/component/toolbox';
import 'echarts/lib/component/axis';
import 'echarts/lib/component/legend';

chart 下是图形的类型,bar:柱状图、pie: 饼图 … 等等,根据自己的需要引入。
component 下是图形上使用的一些组件,title:标题、axis:坐标系 … 等等,和echart官方的配
值相同。

  1. 将这个文件引入到main.ts中。
import './custom-echarts';
  1. 重新运行项目,成功解决问题

注意:如果引入的较少,也可以不用新建 custom-echarts.ts文件 直接引入到main.ts文件中也可以。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 误:在工作区之外运行 Angular CLI 时,此命令不可用。 这个误意味着您需要在 Angular 工作区中运行命令。Angular 工作区是一个包含一个或多个 Angular 项目的文件夹。要进入工作区,请在终端中导航到工作区文件夹,并使用命令 "ng"。如果您还没有创建工作区,请使用 "ng new" 命令创建一个新的 Angular 项目,并在创建时选择 "y" 来创建一个工作区。 ### 回答2: 这个误提示的意思是当在 Angular CLI 以外的工作区运行该命令时,该命令不可用。如果您要使用 Angular CLI 命令,必须先创建 Angular 应用程序的工作区,然后在该工作区中打开终端窗口运行命令。 一个 Angular 应用程序工作区可以被认为是一个包含多个项目的目录,其中每个项目都是一个 Angular 应用程序或一个 Angular 库。 您可以使用 Angular CLI 的组织特性来创建和管理工作区和项目。这使您能够在不同应用程序之间重用代码、组件和模块,并在同一时间在同一工作区中快速构建和测试多个 Angular 应用程序。 为了避免这个误,您需要将终端窗口移动到您的 Angular 应用程序工作区的根目录,并确认您目前在工作区中运行命令。检查您是否在使用正确的命令,并确保您的 Angular CLI 版本正确安装。 最后,还需要注意的是,在升级 Angular CLI 版本时,您必须更新工作区中所有项目的 CLI 版本,以确保它们都与您当前的 CLI 版本兼容。 ### 回答3: 这个误信息的意思是,在没有工作区的情况下运行 Angular CLI 时,该命令不可用。Angular CLI 是用来帮助我们创建、编译、测试和打包 Angular 应用程序的命令行界面工具,我们通常在 Angular 项目中使用它。 当我们在没有工作区的情况下尝试执行 Angular CLI 命令时,这种情况就会发生。工作区是一个包含一个或多个 Angular 项目的目录,它由 Angular CLI 创建并管理。如果我们想要使用 Angular CLI,我们需要先创建一个工作区和一个 Angular 项目,并在项目目录中打开命令行工具。 要解决这个误,我们需要确保我们在正确的上下文中使用 Angular CLI 命令。这意味着我们必须在 Angular 项目的根目录中打开命令行窗口,并使用正确的命令。如果我们还没有创建 Angular 项目,我们需要先创建一个,然后使用 Angular CLI 命令来构建、启动和测试应用程序。 总之,正确使用 Angular CLI 命令需要遵循一些基本的步骤,这些步骤包括创建工作区和项目,确保在正确的目录中打开命令行窗口,并使用正确的命令。如果我们熟悉这些步骤,就可以有效地使用 Angular CLI 工具来开发和管理 Angular 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值