Package Exports
- @oldfish1996/react-svg-charts
Readme
react-svg-charts
React SVG chart components: LineChart, BarChart, CandleChart, RadarChart, MultiChart.
Features
- SVG-based, framework-friendly chart components
- Multiple chart types: line, bar, candlestick, radar, and mixed (multi) charts
- TypeScript-first option APIs
- Basic interactions (axis pointer / tooltip) via
interaction - Storybook for local development and examples
Install
npm i @oldfish1996/react-svg-chartsUsage
import React from 'react';
import { LineChart } from '@oldfish1996/react-svg-charts';
export function BasicLine() {
return (
<LineChart
width={600}
height={320}
x={{ labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] }}
series={{ values: [120, 200, 150, 80, 70] }}
/>
);
}API (high level)
LineChart/LineChartOption/LineSeriesBarChart/BarChartOption/BarSeriesCandleChart/CandleChartOption/CandleSeriesMultiChart/MultiChartOption/MultiSeriesRadarChart/RadarChartOption/RadarIndicator
Links
Development
pnpm installpnpm buildpnpm storybook
Publishing
本项目通过 GitHub Actions 自动发布到 npm,触发方式为「推送 v* 形式的 git tag」。
前置准备(仅 maintainer,一次性)
- 在 npmjs.com 账户的 Access Tokens 页面,生成一个 Automation 类型的 token。
- 账户已启用 2FA 时,只有 Automation token 能在 CI 中直接发布而不要求 OTP。
- 在 GitHub 仓库 Settings → Secrets and variables → Actions 中新增 secret,命名为
NPM_TOKEN,值为上一步生成的 token。
发版步骤
确认
main分支干净且 CI 全绿。在本地切到最新
main,执行版本号升级:# 正式版 pnpm version patch # 或 minor / major # 预发布版 pnpm version prerelease --preid=beta
该命令会自动修改
package.json的version字段并打上对应的vX.Y.Zgit tag。推送 commit 与 tag:
git push --follow-tagstag 推送后,Publish to npm workflow 会自动触发,依次执行:
- 校验 tag 与
package.json的版本一致 pnpm lint/pnpm typecheck/pnpm buildnpm publish --access public --provenance- 创建对应的 GitHub Release(自动生成 release notes)
- 校验 tag 与
dist-tag 策略
| 版本号格式 | 示例 | 发布到的 dist-tag |
|---|---|---|
不含 - |
0.2.0 |
latest |
含 - |
0.2.0-beta.0 |
next |
安装预发布版本:
npm i @oldfish1996/react-svg-charts@next失败排查
- Tag does not match package.json:tag 名(去掉
v)必须与package.json中version完全一致。 - OTP / 401 Unauthorized:
NPM_TOKEN不是 Automation 类型,或已过期;重新生成并更新 secret。 - lint / typecheck 失败:在本地修复后再重新打 tag 发版。