You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Fork后自定义构建的ECharts如何正确导入?

自定义构建ECharts的正确导入方案

我之前折腾自定义ECharts构建的时候也踩过类似的坑,给你分享几个经过验证的导入方法,应该能解决你的问题:

一、直接导入构建后的产物文件

这是最直接的方式,前提是你已经通过ECharts官方构建工具(或者自己配置的构建流程)生成了完整的echarts.jsecharts.min.js文件。

假设你的自定义构建产物放在项目的src/libs/echarts-custom目录下,在组件里可以这样导入:

// 导入未压缩版,方便调试你的自定义代码
import * as echarts from './libs/echarts-custom/echarts.js';

// 或者导入压缩版,生产环境用
// import * as echarts from './libs/echarts-custom/echarts.min.js';

⚠️ 注意:这里的路径是相对路径,要根据你的组件文件和构建产物的位置调整,比如如果组件在src/components下,那路径应该是../libs/echarts-custom/echarts.js

二、将自定义ECharts作为本地依赖引入

这种方式和你之前用import echarts from 'echarts'的体验最接近,步骤如下:

  1. 确保你的自定义构建产物目录里有package.json(如果没有,可以手动创建一个,至少包含namemain字段,比如"main": "echarts.js"
  2. 在项目根目录的package.json里添加本地依赖:
"dependencies": {
  "echarts-custom": "file:./src/libs/echarts-custom"
}
  1. 运行npm install(或yarn install)把本地包链接到项目中
  2. 之后就可以像原来一样导入了:
import * as echarts from 'echarts-custom';

三、按需导入自定义构建的模块(如果用了按需构建)

如果你在构建的时候只打包了树图和必要的核心模块,那可以按需导入对应的部分:

// 导入核心模块
import * as echarts from './libs/echarts-custom/core.js';
// 导入你修改过的树图组件
import './libs/echarts-custom/chart/tree.js';
// 按需导入需要的组件,比如tooltip、legend等
import './libs/echarts-custom/component/tooltip.js';

顺便帮你排查下之前导入失败的可能原因:

  • 导入echarts/dist文件夹:dist目录一般是官方预构建的产物,你自定义构建的产物如果没放到这个目录,自然找不到正确的入口;就算放了,也需要确保目录里有package.json指定入口,或者直接导入具体文件。
  • 导入echarts源码文件夹:源码里的文件是未编译的ES6+代码,直接导入会有语法兼容性问题,而且没有打包后的完整模块结构,所以无法正常加载。
  • 导入echarts.min.js失败:大概率是路径写错了,或者构建时没有正确生成这个文件,可以检查文件是否存在,或者尝试导入未压缩的echarts.js先确认代码是否正常。

内容的提问来源于stack exchange,提问作者user1193256

火山引擎 最新活动