epochjs / epoch
一个通用的、实时可视化库。
Requires
- mbostock/d3: @stable
This package is not auto-updated.
Last update: 2024-09-24 03:46:09 UTC
README
由 Ryan Sandor Richards 编写
Epoch 是一个通用的图表库,适用于应用程序开发人员和可视化设计师。它专注于可视化编程的两个不同方面:用于创建历史报告的 基本图表,以及用于显示频繁更新的时间序列数据的 实时图表。
要开始使用 Epoch,请参阅 Epoch 项目网站。在那里您可以找到完整的文档和指南,以帮助您立即开始使用 Epoch。
安装
Epoch 可以通过以下包管理器轻松安装
如果您在上述列表中没有看到您喜欢的包管理器,请随时 打开一个问题 并让我们知道。最后,您可以从 项目发布页面 下载库的任何版本。
重要:Epoch 需要 d3。为了正常工作,您的页面必须在 epoch 之前加载 d3。
公共 CDN URL
如果您不想自己托管文件,您可以使用 jsDelivr 来提供文件
- 访问 jsDelivr 上的 Epoch 页面。
- 复制提供的 URL 并将其链接到您的项目中。
开发 Epoch
开发 Epoch 是一个相对直接的过程。在本节中,我们将通过详细说明常见的构建任务、探索源代码的安排方式,并最终展示如何使用渲染测试来辅助开发来介绍如何开发 Epoch。
配置开发环境
Epoch 需要以下内容进行开发
一旦在您的机器上安装了这两个,您需要从存储库的根目录运行 npm install
,以便安装开发 epoch 所需的 npm 包。
一旦您安装了所需的 npm 包,您可以使用 gulp build
完全重新构建源(有关 gulp 任务的更多信息,请参阅以下内容)。
基本开发流程
开始为 Epoch 贡献的最佳方法是按照以下步骤进行
- 切换到项目的源目录
- 运行
gulp watch
,以便在源文件更改后重新编译项目 - 在源文件中进行更改(在
src/
或sass/
中) - 在网页浏览器中打开
test/index.html
并浏览渲染测试 - 使用渲染测试来查看您的更改是否产生了预期的结果
- 确保单元测试通过
npm test
测试
Epoch 使用两种类型的测试来确保更改不会引起意外的副作用。第一种是单元测试,确保库的核心功能组件按预期工作。第二种是渲染测试,允许您确保图表和图形被正确渲染。
保持单元测试和渲染测试的最新状态非常重要!在开发时,请遵循以下指南:
- 添加新功能时,务必添加新测试。
- 更改现有功能时,请确保这两种类型的测试仍然通过。
- 如果您想创建新的图表类型,为该图表添加全新的测试套件!
保持测试最新,有助于他人审查您的代码并发现问题。另外,未经适当测试的拉取请求将不会合并。
Gulp 任务
Epoch 使用 gulp 执行各种任务。`gulpfile.js` 文件定义了以下任务:
gulp clean
- 清理 `dist/` 目录。gulp build
- 将 CoffeeScript 和 Sass 源代码构建到 `dist/` 目录。gulp watch
- 启动一个监视脚本,当任何文件更改时重新编译 CoffeeScript 和 Sass。
源结构
Epoch 项目的目录结构遵循一些基本指南,以下是结构概述:
dist/ - Compiled JavaScript and CSS source
src/ - Main source directory
core/ - Core Epoch Library Files
util.coffee - Library Utility Routines
d3.coffee - d3 Extensions
format.coffee - Data formatters
chart.coffee - Base Chart Classes
css.coffee - CSS Querying Engine
adapters/ - 3rd Party Library Adapters (currently only jQuery)
basic/ - Basic Chart Classes
time/ - Real-time Chart Classes
adapters.coffee - Options / Global Classes for Adapter Implementations
basic.coffee - Base Classes for Basic Charts
data.coffee - Data Formatting
epoch.coffee - Main source file, defines name spaces, etc.
model.coffee - Data Model
time.coffee - Base Classes for Real-Time Charts
sass/ - Scss source for the default epoch stylesheet
tests/
render/ - Rendering tests
basic/ - Basic chart rendering tests
real-time/ - Real-time rendering tests
unit/ - Unit tests
发布清单
- 运行
npm test
并确保所有测试通过。 - 运行
npm version [major|minor|patch]
。 - 运行
npm publish
。 - 更新 CHANGELOG.md,包括上次发布以来的更改。
- 更新
gh-pages
分支的库版本到 `_config.yml`。