一般来说,可以直接从 echarts 下载页 中获取构建好的 echarts,也可以从 中的 文件夹中获取构建好的 echarts,这都可以直接在浏览器端项目中使用。这些构建好的 echarts 提供了下面这几种定制:
- 完全版:
echarts/dist/echarts.js
,体积最大,包含所有的图表和组件,所包含内容参见:echarts/echarts.all.js
。 - 常用版:
echarts/dist/echarts.common.js
,体积适中,包含常见的图表和组件,所包含内容参见:echarts/echarts.common.js
。 精简版:
echarts/dist/echarts.simple.js
,体积较小,仅包含最常用的图表和组件,所包含内容参见:echarts/echarts.simple.js
。
如果对文件体积有更严苛的要求,可以自己构建 echarts,能够仅仅包括自己所需要的图表和组件。自定义构建有几种方式:在线自定义构建:比较方便。
- 使用
echarts/build/build.js
脚本自定义构建:比在线构建更灵活一点,并且支持多语言。 - 直接使用构建工具(如 、webpack、)自己构建:也是一种选择。
下面我们举些小例子,介绍后两种方式。
使用命令行,创建自己的工程:
在 myProject
目录下使用命令行,初始化工程的 npm 环境并安装 echarts(这里前提是您已经安装了 ):
npm init
npm install echarts --save
通过 npm 安装的 echarts 会出现在 myProject/node_modules
目录下,从而可以直接在项目代码中得到 echarts,例如:
使用 ES Module:
import * as echarts from 'echarts';
使用 CommonJS:
var echarts = require('echarts')
下面仅以使用 ES Module 的方式来举例。
使用 echarts 提供的构建脚本自定义构建
echarts 已经提供了构建脚本 echarts/build/build.js
,基于 运行。我们可以在 myProject
目录下使用命令行,看到它的使用方式:
node node_modules/echarts/build/build.js --help
其中我们在这个例子里会用到的参数有:
-i
:代码入口文件,可以是绝对路径或者基于当前命令行路径的相对路径。-o
:生成的 bundle 文件,可以是绝对路径或者基于当前命令行路径的相对路径。—min
:是否压缩文件(默认不压缩),并且去多余的打印错误信息的代码,形成生产环境可用的文件。—lang <language shortcut or file path>
:是否使用其他语言版本,默认是中文。例如:—lang en
表示使用英文,—lang my/langXX.js
表示构建时使用<cwd>/my/langXX.js
替代echarts/lib/lang.js
文件。—sourcemap
:是否输出 source map,以便于调试。—format
:输出的格式,可选'umb'
(默认)、'amd'
、'iife'
、'cjs'
、'es'
。
既然我们想自定义构建一个只含有饼图的 echarts 文件,我们需要创建一个入口文件,可以命名为myProject/echarts.custom.js
,文件里会引用所需要的 echarts 模块:
然后我们可以在 myProject
目录下使用命令行,这样开始构建:
node node_modules/echarts/build/build.js --min -i echarts.custom.js -o lib/echarts.custom.min.js
这样,myProject/lib/echarts.custom.min.js
就生成了。我们可以创建 myProject/pie.html
来使用它:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>myProject</title>
<!-- 引入 lib/echarts.custom.min.js -->
<script src="lib/echarts.custom.min.js"></script>
</head>
<body>
<script>
// 绘制图表。
series: {
type: 'pie',
data: [
{name: 'A', value: 1212},
{name: 'B', value: 2323},
{name: 'C', value: 1919}
]
}
});
</script>
</body>
</html>
然后在浏览器里打开 myProject/pie.html
,就可以看到一个饼图:
在自定义构建中,允许被引用的模块,全声明在 myProject/node_module/echarts/echarts.all.js
和 中。echarts 和 zrender 源代码中的其他模块,都是 echarts 的内部模块,不应该去引用。因为在后续 echarts 版本升级中,内部模块的接口和功能可能变化,甚至模块本身也可能被移除。
引用 echarts/lib/ 还是 echarts/src/
- 项目中如果直接引用 echarts 里的一些模块并自行构建,应该使用
echarts/lib/
路径,而不可使用echarts/src/
。 - 当使用构建脚本
echarts/build/build.js
打包 bundle,那么两者可以选其一使用(不可混用),使用echarts/src/**
可以获得稍微小一些的文件体积。
上文中介绍了如何使用 echarts 提供的脚本 echarts/build/build.js
自定义构建。与此并列的另一种选择是,我们直接使用构建工具(如 、webpack、)自定义构建,并且把 echarts 代码和项目代码在构建成一体。在一些项目中可能需要这么做。下面我们仅仅介绍如何使用 rollup 来构建。 和 browserify 与此类同,不赘述。
首先我们在 myProject
目录下使用 npm 安装 :
npm install rollup --save-dev
npm install rollup-plugin-node-resolve --save-dev
npm install rollup-plugin-uglify --save-dev
// 引入 echarts 主模块。
import * as echarts from 'echarts/lib/echarts';
// 引入折线图。
import 'echarts/lib/chart/line';
// 引入提示框组件、标题组件、工具箱组件。
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
import 'echarts/lib/component/toolbox';
// 基于准备好的dom,初始化 echarts 实例并绘制图表。
echarts.init(document.getElementById('main')).setOption({
title: {text: 'Line Chart'},
toolbox: {
feature: {
saveAsImage: {
pixelRatio: 2
},
restore: {}
}
},
xAxis: {},
yAxis: {},
series: [{
type: 'line',
smooth: true,
data: [[12, 5], [24, 20], [36, 36], [48, 10], [60, 10], [72, 20]]
}]
});
对于不支持 ES Module 的浏览器而言,刚才创建的 myProject/line.js
还不能直接被网页引用并在浏览器中运行,需要进行构建。使用 rollup 构建前,需要创建它的配置文件 myProject/rollup.config.js
,内容如下:
然后在 myProject
目录下使用命令行,构建工程代码 myProject/line.js
:
./node_modules/.bin/rollup -c
其中-c
表示让rollup
使用我们刚才创建的myProject/rollup.config.js
文件作为配置文件。
构建生成的 myProject/lib/line.min.js
文件包括了工程代码和 echarts 代码,并且仅仅包括我们所需要的图和组件,并且可以在浏览器中使用。我们可以用一个示例页面来测试一下,创建文件 myProject/line.html
,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>myProject</title>
</head>
<body>
<!-- 为 echarts 准备一个具备大小(宽高)的Dom。 -->
<div id="main" style="width: 600px;height:400px;"></div>
<!-- 引入刚才构建好的文件。 -->
<script src="lib/line.min.js"></script>
</body>
</html>
在浏览器里打开 myProject/line.html
则会得到如下效果:
多语言支持
上面的例子中能看到,工具箱组件(toolbox)的提示文字是中文。本质上,echarts 图表显示出来的文字,都可以通过 option
来定制,改成任意语言。但是如果想“默认就是某种语言”,则需要通过构建来实现。
在上面的例子中,可以在 echarts/build/build.js
的参数中指定语言:
node node_modules/echarts/build/build.js --min -i echarts.custom.js -o lib/echarts.custom.min.js --lang en
表示使用内置的英文。此外还可以是 —lang fi
。
表示在构建时使用 myProject/my/langXX.js
文件来替换 myProject/node_modules/echarts/lib/lang.js
文件。这样可以在 myProject/my/langXX.js
文件中自定义语言。注意这种方式中,必须指定 -o
或者 —output
。