npm i --force
Add or edit example files in the public/examples/ts
folder.
(Do NOT add or edit files in the public/examples/js
folder!)
An example file in public/examples/ts
folder can be xxx.ts
or xxx.js
.
After editing, you need to compile them to JavaScript
using the following command:
# Compile all examples
npm run compile:example
# Compile a single example
npm run compile:example -- area-basic.ts
Notice: if TypeScript errors thrown during this compilation and it is cuased by your local modification of echarts TypeScript interface, you need to change to depends on your local echarts to pass the compilation. For example:
cd your/echarts-examples npm i --force your/local/echarts
If you want the example to be included in the example gallery page, metadata must be provided in each example source code file, formatted as a JavaScript comment. For example:
/*
title: Area Pieces
titleCN: 折线图区域高亮
category: 'line, visualMap'
since: 6.0.0
*/
Note: if you want an example to be excluded from the example gallery page, you can either:
- Add
/* ignore: true */
in its metadata (recommanded). - Move the example file to
public/examples/ts/doc-example/
folder (not recommanded, as its links in echarts-doc have to be modified accordingly). - Remove the metadata from the source code (not recommanded).
Metadata properties can be:
title
: Mandatory. String.titleCN
: Optional. String.category
: Mandatory. String list. That is the main categories in example gallery page. If multiple categories need to be specified, use quotation marks and commas like/* category: 'line, visualMap' */
since
: Optional. Semver version string. Recommended to add it to hint users the available echarts versions. For example,/* since: 6.0.0 */
.difficulty
: Optional. Number.theme
: Optional. String.ignore
: Optional. Boolean. Indicate that exclude this example from example gallery page.videoStart
andvideoEnd
: Optional. Number. Record a video to show the animation when genering screenshot. For example,/* title: Bar Race titleCN: 动态排序柱状图 category: bar difficulty: 5 videoStart: 1000 videoEnd: 6000 */
Check the example in browser: See "View and edit echarts-examples website" below.
For example:
$.when(
$.getScript(ROOT_PATH + '/data/asset/js/xxxx.js'),
$.getScript(
'https://cdn.jsdelivr.net/npm/[email protected]/dist/d3-contour.js'
)
).done(function () {
// ...
});
Use this code to enable controller panel for a example:
app.config = {
aNameForTheSelectionWidget: 'This is the initial value'
aNameForTheRangeWidget: 45,
aNameForTheButtonWidget: function () {
// Do something on button click.
},
onChange: function () {
// Do something on SelectionWidget or RangeWidget changed.
// Read the current value.
console.log(app.config.aNameForTheRangeWidget)
console.log(app.config.aNameForTheSelectionWidget)
}
};
app.configParameters = {
// The keys below must exist in `app.config`.
aNameForTheSelectionWidget: {
options: [
'This is the initial value',
'This is another value',
'This is the third value'
333, // value other than string is supported.
false, // value other than string is supported.
]
// // options can also be:
// options: {
/// // `text`: to display.
// // `value`: write to `app.config` when option is switched.
// text1: value1,
// text2: value2,
// text3: 333, // value other than string is supported.
// text3: false, // value other than string is supported.
// }
},
aNameForTheRangeWidget: {
min: -90,
max: 90
}
};
app.onresize = function () {
// Do something.
};
var width = myChart.getWidth();
var height = myChart.getHeight();
npm run dev
- Create a local config file in
echarts-examples/config/config.local.js
, including the content like:
exports.SCRIPT_URLS = {
// This is your own web server to visit the echarts dist files.
localEChartsDir: 'http://localhost:8001/echarts',
localEChartsGLDir: 'http://localhost:8001/echarts-gl',
// Then the echarts will be fetched by URL
// http://localhost:8001/echarts/dist/echarts.js
// (if `local=1` exists in the entry URL)
};
Note: The local URL is internally defined in
localEChartsDir
&localEChartsGLDir
insrc/common/config.js
- Add
local=1
to the entry URL.
- For example:
http://127.0.0.1:3002/en/editor.html?c=line-simple&local=1
Run all the examples to test package publishing and install, module importing, minimal bundling and DTS correctness.
Before run the tests. you need to update the examples list.
npm run build:examplelist
If puppeteer has not been installed:
npm i puppeteer -D
If you want to save the log:
exe_something > 1.log 2>&1
If you are testing a new version of echarts or zrender, which are not released in github yet, you need run e2e test with local dependent repos.
-
Make sure the dependent repos listed in
dir
attributes inecharts-examples/e2e/config.js
existing. (If usingnpm run test:e2e:local
ornpm run test:e2e:esbuild:local
, the local repo will be fetched from thedir
attributes. Otherwise, download the remote repo from thegit
attributes.) -
Make sure the local repos have release build, typically,
npm run release
has been performed. -
Start e2e test:
# Notice: the commands below will execute `npm install` in these local directories.
# run e2e using local dependent repos and webpack.
npm run test:e2e:local > result.log 2>&1
# run e2e using local dependent repos and esbuild, which is much faster.
npm run test:e2e:esbuild:local > result.log 2>&1
# Notice: the commands below will download the repos listed in `echarts-examples/e2e/config.js` to a temporary folder.
# run e2e using remote dependent repos and webpack.
npm run test:e2e > result.log 2>&1
# run e2e using remote dependent repos and esbuild, which is much faster.
npm run test:e2e:esbuild > result.log 2>&1
The test result is in:
- the
result.log
echarts-examples/e2e/report.html
, the file should be opened in your own local http server.
Note: This can only be used when you run the whole e2e test at least once.
Skip specific stages.
node e2e/main.js --skip bundle
Specify matched tests.
node e2e/main.js --skip npm --tests bar3D*
- Update example snapshots
npm run build:example
# Node: If only build for default theme:
node tool/build-example.js -t default
- Build and copy all the build resources to
echarts-website
npm run release
# Note: the config of the dir of echarts-website is in
# `echarts-examples/config/**`