rj-grid 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +328 -98
- package/dist/rj-grid.js +812 -388
- package/dist/style.css +147 -2
- package/dist/types/src/RjContextMenu.vue.d.ts +2 -2
- package/dist/types/src/RjGrid.vue.d.ts +23 -0
- package/dist/types/src/RjOptionSelect.vue.d.ts +49 -0
- package/dist/types/src/nlq.d.ts +10 -2
- package/dist/types/src/optionsSource.d.ts +24 -1
- package/dist/types/src/types.d.ts +6 -1
- package/dist/types/src/useColumnState.d.ts +1 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,98 +1,328 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/images/01-overview.png" alt="rj-grid 综合功能总览" width="100%" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">rj-grid</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<b>零第三方依赖的企业级 Vue 3 数据网格 —— 对标 AG Grid 的全功能,MIT 免费、gzip 约 93 KB。</b><br/>
|
|
9
|
+
虚拟滚动 · 冻结列 · 分组透视 · 树形 · 编辑撤销 · 公式引擎 · SSRM 服务端行模型 · 主题 & i18n · 打印/CSV/Excel/PDF · 离线自然语言查询(NLQ)
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://www.npmjs.com/package/rj-grid"><img src="https://img.shields.io/npm/v/rj-grid.svg?logo=npm&color=cb3837" alt="npm version"/></a>
|
|
14
|
+
<a href="https://github.com/rjding/rjGrid"><img src="https://img.shields.io/github/stars/rjding/rjGrid?logo=github&color=181717" alt="GitHub stars"/></a>
|
|
15
|
+
<a href="https://gitee.com/rjding/rj-grid"><img src="https://img.shields.io/badge/Gitee-rj--grid-orange?logo=gitee&logoColor=white" alt="Gitee mirror"/></a>
|
|
16
|
+
<a href="https://github.com/rjding/rjGrid/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License MIT"/></a>
|
|
17
|
+
<a href="https://gitee.com/rjding/rj-grid"><img src="https://img.shields.io/badge/third--party%20deps-0-blue.svg" alt="Zero dependencies"/></a>
|
|
18
|
+
<img src="https://img.shields.io/badge/gzip-~93KB-lightgrey.svg" alt="Bundle size"/>
|
|
19
|
+
<a href="https://vuejs.org/"><img src="https://img.shields.io/badge/vue-3.x-brightgreen.svg?logo=vuedotjs" alt="Vue 3"/></a>
|
|
20
|
+
<img src="https://img.shields.io/badge/tests-346%20passed-yellowgreen.svg" alt="Tests"/>
|
|
21
|
+
<img src="https://img.shields.io/badge/types-TypeScript-blue.svg?logo=typescript" alt="TypeScript"/>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<a href="#-快速开始">快速开始</a> ·
|
|
26
|
+
<a href="#-能力演示">能力演示</a> ·
|
|
27
|
+
<a href="#-与-ag-grid-对比">与 AG Grid 对比</a> ·
|
|
28
|
+
<a href="docs/RjGrid使用手册.md">完整手册</a> ·
|
|
29
|
+
<a href="https://github.com/rjding/rjGrid">GitHub</a> ·
|
|
30
|
+
<a href="https://gitee.com/rjding/rj-grid">Gitee</a> ·
|
|
31
|
+
<a href="README_EN.md">English</a>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 💡 为什么选 rj-grid
|
|
37
|
+
|
|
38
|
+
想象一下:一个 `<rj-grid>` 标签,就能替换掉你项目里那些「几万行就卡死、想加个分组又得换库」的表格——而**不额外引入任何第三方依赖**,也不用给商业表格库交授权费。
|
|
39
|
+
|
|
40
|
+
- **真·零依赖**:运行时只需 `vue`,连可选的图表都是按需 `import('echarts')`。不捆绑、不污染你的 lockfile。
|
|
41
|
+
- **小得离谱**:gzip 约 93 KB,却装下了别人几个库加起来的功能量。
|
|
42
|
+
- **10 万行丝滑**:行列双向虚拟滚动,实测 100,000 行 × 12 列秒开(生成仅约 12 ms)。
|
|
43
|
+
- **对标 AG Grid 全功能**:树形 / 分组 / 透视 / SSRM / 公式 / 主题 / i18n / 导出 / NLQ 一应俱全。
|
|
44
|
+
- **TypeScript 原生**:完整的类型推导与 `.d.ts`,编辑器全程提示,不是「先跑起来再说」的糙活。
|
|
45
|
+
- **免费商用**:MIT 协议,个人和企业都能放心用。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## ✨ 特性一览
|
|
50
|
+
|
|
51
|
+
| 分类 | 你会得到的能力 |
|
|
52
|
+
|---|---|
|
|
53
|
+
| 渲染 | 行列虚拟滚动(10 万行流畅)、冻结列、多级表头、密度三档、钉行、全宽行 |
|
|
54
|
+
| 数据 | 客户端 / 分页 / 无限滚动 / **SSRM 服务端行模型**(按需块缓存)四种模式 |
|
|
55
|
+
| 分组 | 树形任意深度、拖拽分组、多级分组 + 组页脚聚合、列透视(含高基数护栏) |
|
|
56
|
+
| 编辑 | 8 类编辑器、校验、撤销/重做、批量事务回填、内置新增/编辑行弹窗 |
|
|
57
|
+
| 公式 | 零依赖 Excel 风格公式:`=B2*C2`、`SUM/COUNTIF/SUMIF`、区域引用、循环引用检测 |
|
|
58
|
+
| 筛选 | 列头漏斗 / 浮动筛选行 / 快速搜索 / 高级过滤(跨列 AND/OR 表达式树)四路叠加 |
|
|
59
|
+
| 外观 | 主题引擎(4 预设 × 明暗 × 强调色 × 自定义 CSS 变量)、i18n(中/英 + 文案覆盖)、图标替换 |
|
|
60
|
+
| 输出 | 打印 / CSV / Excel / PDF,支持选中行 / 当前视图 / 后端导出三种范围 |
|
|
61
|
+
| AI | 纯离线确定性 **NLQ**,中英双语随 i18n 切换:中文用「数量大于50 按单价降序」、英文用 `qty > 50 sort by price desc`,回显随语言 |
|
|
62
|
+
| 状态 | `stateKey` 自动持久化 + `getState/setState` 编程式存取,刷新不丢视图 |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 🚀 快速开始
|
|
67
|
+
|
|
68
|
+
> 三步,两分钟,跑起来。
|
|
69
|
+
|
|
70
|
+
**① 安装**
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install rj-grid
|
|
74
|
+
# 或 pnpm add rj-grid / yarn add rj-grid
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**② 引入组件与样式**
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
// main.ts —— 样式全局引一次即可
|
|
81
|
+
import 'rj-grid/style.css'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**③ 直接使用**
|
|
85
|
+
|
|
86
|
+
```vue
|
|
87
|
+
<template>
|
|
88
|
+
<rj-grid :columns="cols" :rows="rows" row-key="id" :height="480" show-toolbar />
|
|
89
|
+
</template>
|
|
90
|
+
|
|
91
|
+
<script setup lang="ts">
|
|
92
|
+
import { RjGrid } from 'rj-grid' // ⚠️ 必须「值导入」,不能只写 type
|
|
93
|
+
import type { RjColumn, RjRowData } from 'rj-grid'
|
|
94
|
+
|
|
95
|
+
const cols: RjColumn[] = [
|
|
96
|
+
{ field: 'name', title: '名称', width: 160, filter: 'text' },
|
|
97
|
+
{ field: 'qty', title: '数量', type: 'num', aggFunc: 'sum' },
|
|
98
|
+
{ field: 'price', title: '单价', type: 'money', aggFunc: 'avg' }
|
|
99
|
+
]
|
|
100
|
+
const rows: RjRowData[] = [
|
|
101
|
+
{ id: 1, name: '轴承', qty: 100, price: 12.5 },
|
|
102
|
+
{ id: 2, name: '电机', qty: 30, price: 480 }
|
|
103
|
+
]
|
|
104
|
+
</script>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`show-toolbar` 一开,冻结列、分组、筛选、导出、列显隐全部自带,无需再写一行代码。想解锁更多能力,加个属性即可 —— 每个特性的完整参数见 [📖 使用手册](docs/RjGrid使用手册.md)。
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 🎬 能力演示
|
|
112
|
+
|
|
113
|
+
真实产品截图/动图,全部来自 `playground` 演示页:
|
|
114
|
+
|
|
115
|
+
<table>
|
|
116
|
+
<tr>
|
|
117
|
+
<td width="50%">
|
|
118
|
+
<b>🎨 主题引擎 · 4 预设 × 明暗 × 多语言</b><br/>
|
|
119
|
+
<img src="docs/images/theme-cycle.gif" alt="主题切换动画" width="100%"/>
|
|
120
|
+
</td>
|
|
121
|
+
<td width="50%">
|
|
122
|
+
<b>🤖 离线自然语言查询(NLQ)</b><br/>
|
|
123
|
+
输入一句话,自动完成「筛选 + 排序 + 分组」。<br/>
|
|
124
|
+
<img src="docs/images/nlq-query.gif" alt="NLQ 查询动画" width="100%"/>
|
|
125
|
+
</td>
|
|
126
|
+
</tr>
|
|
127
|
+
<tr>
|
|
128
|
+
<td>
|
|
129
|
+
<b>🌲 树形层级 · 一键展开 / 折叠</b><br/>
|
|
130
|
+
<img src="docs/images/tree-expand.gif" alt="树形展开折叠动画" width="100%"/>
|
|
131
|
+
</td>
|
|
132
|
+
<td>
|
|
133
|
+
<b>🔍 快速过滤 · 跨全列即时匹配高亮</b><br/>
|
|
134
|
+
<img src="docs/images/quick-filter.gif" alt="快速过滤动画" width="100%"/>
|
|
135
|
+
</td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr>
|
|
138
|
+
<td>
|
|
139
|
+
<b>🧮 公式引擎 · Excel 风格零依赖</b><br/>
|
|
140
|
+
<img src="docs/images/15-formula.png" alt="公式列" width="100%"/>
|
|
141
|
+
</td>
|
|
142
|
+
<td>
|
|
143
|
+
<b>📦 内置行编辑 / 新增弹窗 · 由列定义自动生成表单</b><br/>
|
|
144
|
+
<img src="docs/images/08-row-form.png" alt="行弹窗" width="100%"/>
|
|
145
|
+
</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td>
|
|
149
|
+
<b>📊 分组聚合 + 组页脚</b><br/>
|
|
150
|
+
<img src="docs/images/12-group.png" alt="分组聚合" width="100%"/>
|
|
151
|
+
</td>
|
|
152
|
+
<td>
|
|
153
|
+
<b>⚡ 10 万行虚拟滚动 · 生成仅约 12 ms</b><br/>
|
|
154
|
+
<img src="docs/images/10-perf-100k.png" alt="大数据性能" width="100%"/>
|
|
155
|
+
</td>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr>
|
|
158
|
+
<td>
|
|
159
|
+
<b>↕️ 行拖动 · 拖手柄重排行序</b><br/>
|
|
160
|
+
<img src="docs/images/row-drag.gif" alt="行拖动动画" width="100%"/>
|
|
161
|
+
</td>
|
|
162
|
+
<td>
|
|
163
|
+
<b>⇄ 列拖动 · 列菜单「列」页签拖拽换序(列序实时改变)</b><br/>
|
|
164
|
+
<img src="docs/images/col-drag.gif" alt="列拖动动画" width="100%"/>
|
|
165
|
+
</td>
|
|
166
|
+
</tr>
|
|
167
|
+
<tr>
|
|
168
|
+
<td colspan="2">
|
|
169
|
+
<b>➕ 动态添加查询字段 · queryable 一行代码获得可配置查询栏</b><br/>
|
|
170
|
+
<img src="docs/images/query-field.gif" alt="动态查询字段动画" width="100%"/>
|
|
171
|
+
</td>
|
|
172
|
+
</tr>
|
|
173
|
+
<tr>
|
|
174
|
+
<td width="50%">
|
|
175
|
+
<b>🔎 服务端查询 + 分页 · 条件栏与页器同行</b><br/>
|
|
176
|
+
<img src="docs/images/13-server-pagination.png" alt="服务端查询分页" width="100%"/>
|
|
177
|
+
</td>
|
|
178
|
+
<td width="50%">
|
|
179
|
+
<b>☰ 密度三档 · 一屏看更多 / 宽松易读自由切</b><br/>
|
|
180
|
+
<img src="docs/images/21-density.png" alt="显示密度切换" width="100%"/>
|
|
181
|
+
</td>
|
|
182
|
+
</tr>
|
|
183
|
+
<tr>
|
|
184
|
+
<td width="50%">
|
|
185
|
+
<b>💾 保存视图 · 一键存当前查询/列布局/排序为快照</b><br/>
|
|
186
|
+
<img src="docs/images/save-view.gif" alt="保存视图动画" width="100%"/>
|
|
187
|
+
</td>
|
|
188
|
+
<td width="50%">
|
|
189
|
+
<b>▦ 工具面板 · 列显隐/分组/透视拖拽管理</b><br/>
|
|
190
|
+
<img src="docs/images/panel.gif" alt="工具面板动画" width="100%"/>
|
|
191
|
+
</td>
|
|
192
|
+
</tr>
|
|
193
|
+
<tr>
|
|
194
|
+
<td colspan="2">
|
|
195
|
+
<b>🖨 打印 / 导出 · 前端(选中行/当前视图)+ 后端导出三档可选</b><br/>
|
|
196
|
+
<img src="docs/images/print-export.gif" alt="打印导出范围动画" width="100%"/>
|
|
197
|
+
</td>
|
|
198
|
+
</tr>
|
|
199
|
+
</table>
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 🔍 与 AG Grid 对比
|
|
204
|
+
|
|
205
|
+
| 维度 | rj-grid | AG Grid |
|
|
206
|
+
|---|---|---|
|
|
207
|
+
| 授权 / 费用 | ✅ MIT 完全免费 | ⚠️ 企业级特性需商业授权 |
|
|
208
|
+
| 第三方运行时依赖 | ✅ 仅 `vue` | ⚠️ 自带框架与模块体系 |
|
|
209
|
+
| gzip 体积 | ✅ 约 93 KB | 显著更大 |
|
|
210
|
+
| Vue 3 原生 | ✅ 值导入即用,非二次封装 | 提供 Vue 封装层 |
|
|
211
|
+
| 离线自然语言查询 | ✅ 内置纯确定性 NLQ | ❌ 无 |
|
|
212
|
+
| 虚拟滚动 / 分组 / 透视 / SSRM / 公式 / 主题 / 导出 | ✅ 全部内置 | ✅ 部分在付费版 |
|
|
213
|
+
|
|
214
|
+
> rj-grid 的定位不是「山寨 AG Grid」,而是给 Vue 项目一个**免费、轻量、开箱即用**的高质量选择。
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 🧩 数据模式(按需选择)
|
|
219
|
+
|
|
220
|
+
```vue
|
|
221
|
+
<!-- 客户端:全量入 rows,排序/筛选/分组全在浏览器,虚拟滚动扛 10 万行 -->
|
|
222
|
+
<rj-grid :columns="cols" :rows="rows" row-key="id" />
|
|
223
|
+
|
|
224
|
+
<!-- 分页:后端分页,loadData 自动携带排序/筛选/页码,分页器位置由 pager-position 决定 -->
|
|
225
|
+
<rj-grid :columns="cols" data-mode="pagination" :load-data="loadData" :page-size="20" />
|
|
226
|
+
|
|
227
|
+
<!-- 无限滚动:滚动到底按块续取,无页码 -->
|
|
228
|
+
<rj-grid :columns="cols" data-mode="infinite" :load-data="loadData" />
|
|
229
|
+
|
|
230
|
+
<!-- SSRM 服务端行模型:分组/大数据块缓存,按需分块加载 -->
|
|
231
|
+
<rj-grid :columns="cols" data-mode="serverSide" :load-data="loadData" server-side-grouping />
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
```ts
|
|
235
|
+
import type { RjLoadServerParams } from 'rj-grid'
|
|
236
|
+
// params 自动带 start/end/page/pageSize/sort/filters/quickFilterText/rowGroup…,平铺给后端即可
|
|
237
|
+
async function loadData(p: RjLoadServerParams) {
|
|
238
|
+
const res = await api.queryPage(p)
|
|
239
|
+
return { rows: res.list, total: res.total, success: true }
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
各模式的完整配置与回调签名见 [手册 §6 数据模式](docs/RjGrid使用手册.md)。
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## 🛠 兼容性与技术栈
|
|
248
|
+
|
|
249
|
+
- **框架**:Vue `^3.4.0`(唯一必装 peer 依赖)
|
|
250
|
+
- **可选**:`echarts >= 5.0.0`(仅「集成图表」对话框用到,未安装时优雅降级不崩页)
|
|
251
|
+
- **语言**:TypeScript 全量类型,`.d.ts` 随包发布
|
|
252
|
+
- **样式**:单一 `rj-grid/style.css`,主题走 CSS 变量,可按需覆盖
|
|
253
|
+
- **构建**:Vite 库模式 ESM 单文件,`sideEffects` 仅 CSS,Tree-shaking 友好
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 🖥 本地运行演示页
|
|
258
|
+
|
|
259
|
+
演示页(`playground/`)独立起服、不依赖宿主项目,8 个标签就是能力地图:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
git clone https://github.com/rjding/rjGrid.git # 国内可用镜像:git clone https://gitee.com/rjding/rj-grid.git
|
|
263
|
+
cd rjGrid
|
|
264
|
+
pnpm install
|
|
265
|
+
pnpm dev # 默认 http://localhost:5173
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
> ① 综合功能 ② 大数据性能 ③ 树形/分组/透视 ④ 服务端模式 ⑤ SSRM 块缓存 ⑥ 公式引擎 ⑦ 主题 & 国际化 ⑧ AI 自然语言查询
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
<details>
|
|
273
|
+
<summary><b>📚 维护者信息(仓库结构 / 开发命令 / 发布纪律)</b></summary>
|
|
274
|
+
|
|
275
|
+
### 仓库布局
|
|
276
|
+
|
|
277
|
+
| 路径 | 作用 |
|
|
278
|
+
|---|---|
|
|
279
|
+
| `index.ts` | 包入口(值导出 `RjGrid` + NLQ / 查询条件内核 + 全部公共类型) |
|
|
280
|
+
| `src/` | 组件与引擎源码(`src/types.ts` 是类型权威) |
|
|
281
|
+
| `__tests__/` | 346 个单测用例,入口 `__tests__/run.ts` |
|
|
282
|
+
| `build/rjDistCheck.mjs` | 产物体检五守卫(构建末尾自动跑) |
|
|
283
|
+
| `vite.lib.config.ts` | 库构建:ESM 单文件 + 单 `style.css`,external `vue`/`echarts`,不出 sourcemap |
|
|
284
|
+
| `playground/` | 8 标签演示页 |
|
|
285
|
+
| `docs/RjGrid使用手册.md` | 完整使用手册(能力、API、坑与边界) |
|
|
286
|
+
| `dist/` | 发布产物,随库入库 |
|
|
287
|
+
|
|
288
|
+
### 开发命令
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
pnpm test # 单测 346 passed
|
|
292
|
+
pnpm ts # vue-tsc --noEmit
|
|
293
|
+
pnpm lint # eslint + stylelint
|
|
294
|
+
pnpm build # vite lib → vue-tsc 产 d.ts → 产物体检五守卫
|
|
295
|
+
pnpm size # 体积报告
|
|
296
|
+
pnpm dev # playground 演示页
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 发布新版本
|
|
300
|
+
|
|
301
|
+
改完源码 → `npm version patch|minor|major`(自动 bump + commit + tag)→ `git push --follow-tags` → `npm publish`(`prepublishOnly` 会自动 `pnpm build && pnpm test`,杜绝发出旧 dist)。
|
|
302
|
+
|
|
303
|
+
### 宿主接入补充
|
|
304
|
+
|
|
305
|
+
- 从 npm 安装目录名规范(`node_modules/rj-grid`),样式可直接 `import 'rj-grid/style.css'`。
|
|
306
|
+
- 组件侧必须**值导入** `import { RjGrid } from 'rj-grid'`,只写 type 导入会在运行期报 `Failed to resolve component: rj-grid`。
|
|
307
|
+
- 走 git URL 时 pnpm 会把依赖装进带 `#<commit>` 的目录名,vite 资源 URL 含裸 `#` 会被当片段丢掉 → dev 下 404,此时用 CSS `@import` 垫片(详见手册 §15.4)。
|
|
308
|
+
- `dist` 入库仅为兼容 git URL 安装路径;`sourcemap: false` 是源码保护而非可选项,产物五守卫同时在把关。
|
|
309
|
+
|
|
310
|
+
</details>
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## 🤝 贡献
|
|
315
|
+
|
|
316
|
+
欢迎 Issue 与 PR:提 bug、要特性、补文档都行。改动请附带相应单测,保证 `pnpm test && pnpm ts && pnpm lint && pnpm build` 全绿。
|
|
317
|
+
|
|
318
|
+
## 📄 许可证
|
|
319
|
+
|
|
320
|
+
[MIT](LICENSE) — 个人与企业均可免费使用、修改与再分发。
|
|
321
|
+
|
|
322
|
+
## ☕ 支持作者
|
|
323
|
+
|
|
324
|
+
如果 rj-grid 帮到了你,欢迎点个 ⭐ Star,或请作者喝杯咖啡:
|
|
325
|
+
|
|
326
|
+
<p align="center">
|
|
327
|
+
<img src="docs/88888.png" alt="小小支援,大大的爱" width="240"/>
|
|
328
|
+
</p>
|