hd-attribute-set 0.1.2 → 0.1.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/dist/hd-attribute-set.cjs +1 -1
- package/dist/hd-attribute-set.js +1 -1
- package/package.json +88 -88
- package/readme.md +113 -113
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./utils.cjs"),i=require("./use-permission-CbbVGG4p.cjs"),s="0.1.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./utils.cjs"),i=require("./use-permission-CbbVGG4p.cjs"),s="0.1.3";exports.debounce=e.debounce;exports.deepClone=e.deepClone;exports.isEmail=e.isEmail;exports.isEmpty=e.isEmpty;exports.isIdCard=e.isIdCard;exports.isPhone=e.isPhone;exports.listToTree=e.listToTree;exports.sleep=e.sleep;exports.throttle=e.throttle;exports.uniqueBy=e.uniqueBy;exports.DEFAULT_PERMISSION_CONFIG=i.DEFAULT_PERMISSION_CONFIG;exports.normalizePermissionId=i.normalizePermissionId;exports.resolvePermissionConfig=i.resolvePermissionConfig;exports.useMemoizedFn=i.useMemoizedFn;exports.usePermission=i.usePermission;exports.version=s;
|
package/dist/hd-attribute-set.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { debounce as i, deepClone as r, isEmail as n, isEmpty as a, isIdCard as m, isPhone as t, listToTree as l, sleep as d, throttle as p, uniqueBy as u } from "./utils.js";
|
|
2
2
|
import { D as P, n as C, r as E, u as f, a as x } from "./use-permission-DHvtS-2I.js";
|
|
3
|
-
const e = "0.1.
|
|
3
|
+
const e = "0.1.3";
|
|
4
4
|
export {
|
|
5
5
|
P as DEFAULT_PERMISSION_CONFIG,
|
|
6
6
|
i as debounce,
|
package/package.json
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "hd-attribute-set",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "属性集组件库,基于 React + antd",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"react",
|
|
7
|
-
"component",
|
|
8
|
-
"antd",
|
|
9
|
-
"attribute-set"
|
|
10
|
-
],
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"author": "szldjd",
|
|
13
|
-
"repository": {
|
|
14
|
-
"type": "git",
|
|
15
|
-
"url": "https://cnb.cool/szldjd/fee/hd-attribute-set"
|
|
16
|
-
},
|
|
17
|
-
"bugs": {
|
|
18
|
-
"url": "https://cnb.cool/szldjd/fee/hd-attribute-set/-/issues"
|
|
19
|
-
},
|
|
20
|
-
"homepage": "https://cnb.cool/szldjd/fee/hd-attribute-set",
|
|
21
|
-
"publishConfig": {
|
|
22
|
-
"access": "public",
|
|
23
|
-
"registry": "https://registry.npmjs.org/"
|
|
24
|
-
},
|
|
25
|
-
"type": "module",
|
|
26
|
-
"sideEffects": [
|
|
27
|
-
"**/*.css",
|
|
28
|
-
"**/*.less"
|
|
29
|
-
],
|
|
30
|
-
"files": [
|
|
31
|
-
"dist",
|
|
32
|
-
"README.md"
|
|
33
|
-
],
|
|
34
|
-
"main": "dist/hd-attribute-set.cjs",
|
|
35
|
-
"module": "dist/hd-attribute-set.js",
|
|
36
|
-
"types": "dist/index.d.ts",
|
|
37
|
-
"exports": {
|
|
38
|
-
".": {
|
|
39
|
-
"types": "./dist/index.d.ts",
|
|
40
|
-
"import": "./dist/hd-attribute-set.js",
|
|
41
|
-
"require": "./dist/hd-attribute-set.cjs"
|
|
42
|
-
},
|
|
43
|
-
"./utils": {
|
|
44
|
-
"types": "./dist/utils.d.ts",
|
|
45
|
-
"import": "./dist/utils.js",
|
|
46
|
-
"require": "./dist/utils.cjs"
|
|
47
|
-
},
|
|
48
|
-
"./hooks": {
|
|
49
|
-
"types": "./dist/hooks.d.ts",
|
|
50
|
-
"import": "./dist/hooks.js",
|
|
51
|
-
"require": "./dist/hooks.cjs"
|
|
52
|
-
},
|
|
53
|
-
"./dist/*": "./dist/*"
|
|
54
|
-
},
|
|
55
|
-
"typesVersions": {
|
|
56
|
-
"*": {
|
|
57
|
-
"utils": [
|
|
58
|
-
"./dist/utils.d.ts"
|
|
59
|
-
],
|
|
60
|
-
"hooks": [
|
|
61
|
-
"./dist/hooks.d.ts"
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
"scripts": {
|
|
66
|
-
"dev": "vite",
|
|
67
|
-
"build": "tsc --noEmit && vite build",
|
|
68
|
-
"preview": "vite preview",
|
|
69
|
-
"prepublishOnly": "npm run build"
|
|
70
|
-
},
|
|
71
|
-
"peerDependencies": {
|
|
72
|
-
"antd": ">=5.0.0",
|
|
73
|
-
"react": ">=17.0.0",
|
|
74
|
-
"react-dom": ">=17.0.0"
|
|
75
|
-
},
|
|
76
|
-
"devDependencies": {
|
|
77
|
-
"@types/react": "^18.3.0",
|
|
78
|
-
"@types/react-dom": "^18.3.0",
|
|
79
|
-
"@types/node": "^20.14.0",
|
|
80
|
-
"@vitejs/plugin-react": "^4.3.0",
|
|
81
|
-
"antd": "^5.21.0",
|
|
82
|
-
"less": "^4.2.0",
|
|
83
|
-
"react": "^18.3.0",
|
|
84
|
-
"react-dom": "^18.3.0",
|
|
85
|
-
"typescript": "^5.5.0",
|
|
86
|
-
"vite": "^5.4.0",
|
|
87
|
-
"vite-plugin-dts": "^4.2.0"
|
|
88
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "hd-attribute-set",
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "属性集组件库,基于 React + antd",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"component",
|
|
8
|
+
"antd",
|
|
9
|
+
"attribute-set"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"author": "szldjd",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://cnb.cool/szldjd/fee/hd-attribute-set"
|
|
16
|
+
},
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://cnb.cool/szldjd/fee/hd-attribute-set/-/issues"
|
|
19
|
+
},
|
|
20
|
+
"homepage": "https://cnb.cool/szldjd/fee/hd-attribute-set",
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public",
|
|
23
|
+
"registry": "https://registry.npmjs.org/"
|
|
24
|
+
},
|
|
25
|
+
"type": "module",
|
|
26
|
+
"sideEffects": [
|
|
27
|
+
"**/*.css",
|
|
28
|
+
"**/*.less"
|
|
29
|
+
],
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"README.md"
|
|
33
|
+
],
|
|
34
|
+
"main": "dist/hd-attribute-set.cjs",
|
|
35
|
+
"module": "dist/hd-attribute-set.js",
|
|
36
|
+
"types": "dist/index.d.ts",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"types": "./dist/index.d.ts",
|
|
40
|
+
"import": "./dist/hd-attribute-set.js",
|
|
41
|
+
"require": "./dist/hd-attribute-set.cjs"
|
|
42
|
+
},
|
|
43
|
+
"./utils": {
|
|
44
|
+
"types": "./dist/utils.d.ts",
|
|
45
|
+
"import": "./dist/utils.js",
|
|
46
|
+
"require": "./dist/utils.cjs"
|
|
47
|
+
},
|
|
48
|
+
"./hooks": {
|
|
49
|
+
"types": "./dist/hooks.d.ts",
|
|
50
|
+
"import": "./dist/hooks.js",
|
|
51
|
+
"require": "./dist/hooks.cjs"
|
|
52
|
+
},
|
|
53
|
+
"./dist/*": "./dist/*"
|
|
54
|
+
},
|
|
55
|
+
"typesVersions": {
|
|
56
|
+
"*": {
|
|
57
|
+
"utils": [
|
|
58
|
+
"./dist/utils.d.ts"
|
|
59
|
+
],
|
|
60
|
+
"hooks": [
|
|
61
|
+
"./dist/hooks.d.ts"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"dev": "vite",
|
|
67
|
+
"build": "tsc --noEmit && vite build",
|
|
68
|
+
"preview": "vite preview",
|
|
69
|
+
"prepublishOnly": "npm run build"
|
|
70
|
+
},
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"antd": ">=5.0.0",
|
|
73
|
+
"react": ">=17.0.0",
|
|
74
|
+
"react-dom": ">=17.0.0"
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@types/react": "^18.3.0",
|
|
78
|
+
"@types/react-dom": "^18.3.0",
|
|
79
|
+
"@types/node": "^20.14.0",
|
|
80
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
81
|
+
"antd": "^5.21.0",
|
|
82
|
+
"less": "^4.2.0",
|
|
83
|
+
"react": "^18.3.0",
|
|
84
|
+
"react-dom": "^18.3.0",
|
|
85
|
+
"typescript": "^5.5.0",
|
|
86
|
+
"vite": "^5.4.0",
|
|
87
|
+
"vite-plugin-dts": "^4.2.0"
|
|
88
|
+
}
|
|
89
89
|
}
|
package/readme.md
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
# hd-attribute-set
|
|
2
|
-
|
|
3
|
-
基于 **TypeScript** 的工具/组件库,使用 Vite 库模式构建,通过 [CNB 云原生构建](https://docs.cnb.cool/) 自动发布到 npm。
|
|
4
|
-
|
|
5
|
-
## 目录结构
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
├── .cnb.yml # CNB 云原生构建流水线配置
|
|
9
|
-
├── index.html # 本地调试入口(playground)
|
|
10
|
-
├── src
|
|
11
|
-
│ ├── index.ts # 包主入口(构建产物入口)
|
|
12
|
-
│ ├── App.tsx / main.tsx # 调试页面
|
|
13
|
-
│ ├── utils # 公共工具方法(多文件)
|
|
14
|
-
│ │ ├── index.ts # 统一出口(barrel)
|
|
15
|
-
│ │ ├── format.ts
|
|
16
|
-
│ │ ├── validate.ts
|
|
17
|
-
│ │ ├── object.ts
|
|
18
|
-
│ │ └── fn.ts
|
|
19
|
-
│ └── hooks # 业务 Hook(解耦后版本)
|
|
20
|
-
│ ├── index.ts
|
|
21
|
-
│ ├── use-btn-deal.ts
|
|
22
|
-
│ ├── use-permission.ts
|
|
23
|
-
│ ├── use-row-selection.ts
|
|
24
|
-
│ └── use-memoized-fn.ts
|
|
25
|
-
├── vite.config.ts # Vite 配置(lib 模式,多入口)
|
|
26
|
-
└── tsconfig.json
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## 本地开发
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
npm install
|
|
33
|
-
npm run dev # 启动 playground 调试
|
|
34
|
-
npm run build # 构建产物到 dist/
|
|
35
|
-
npm pack --dry-run # 查看将要发布到 npm 的文件清单
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## 新增工具方法
|
|
39
|
-
|
|
40
|
-
1. 在 `src/utils/` 下新建文件(如 `string.ts`)并 `export` 方法;
|
|
41
|
-
2. 在 `src/utils/index.ts` 加一行 `export * from './string';`;
|
|
42
|
-
3. `npm run build`,新方法即自动出现在包根路径与 `hd-attribute-set/utils` 两个入口。
|
|
43
|
-
|
|
44
|
-
## 在其他项目中使用
|
|
45
|
-
|
|
46
|
-
安装:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm i hd-attribute-set
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
引入方式(三个入口,按需选择):
|
|
53
|
-
|
|
54
|
-
```ts
|
|
55
|
-
// 1. 根路径:通用工具
|
|
56
|
-
import { formatMoney, version } from 'hd-attribute-set';
|
|
57
|
-
|
|
58
|
-
// 2. utils 子路径
|
|
59
|
-
import { isEmail, listToTree } from 'hd-attribute-set/utils';
|
|
60
|
-
|
|
61
|
-
// 3. hooks 子路径(已对权限/按钮/表格做解耦,可与任意数据源配合)
|
|
62
|
-
import { useBtnDeal, usePermission, useRowSelection } from 'hd-attribute-set/hooks';
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
CommonJS 环境:
|
|
66
|
-
|
|
67
|
-
```js
|
|
68
|
-
const { formatMoney } = require('hd-attribute-set');
|
|
69
|
-
const { isPhone } = require('hd-attribute-set/utils');
|
|
70
|
-
const { useBtnDeal } = require('hd-attribute-set/hooks');
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### hooks 用法示例
|
|
74
|
-
|
|
75
|
-
> 所有 hooks 都已与 Redux/ahooks 解耦,权限数据通过 `getAccessConfig` 注入。
|
|
76
|
-
|
|
77
|
-
```tsx
|
|
78
|
-
import { useSelector } from 'react-redux';
|
|
79
|
-
import { useBtnDeal, usePermission } from 'hd-attribute-set/hooks';
|
|
80
|
-
|
|
81
|
-
// 接 Redux
|
|
82
|
-
const access = useSelector(s => s.auth.accessConfig);
|
|
83
|
-
const { controlShowStatus } = useBtnDeal(() => access);
|
|
84
|
-
// 或接任意数据源
|
|
85
|
-
const { hasPermission } = usePermission(() => ({ noPermissionShow: true, list: [], selectAll: true }));
|
|
86
|
-
|
|
87
|
-
const [editVisible, editBtn] = controlShowStatus({
|
|
88
|
-
type: 'edit',
|
|
89
|
-
detail: rowData,
|
|
90
|
-
configBtns: btnConfigs, // 来自后端/配置的按钮列表
|
|
91
|
-
});
|
|
92
|
-
{editVisible && <Button {...editBtn}>编辑</Button>}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## 发布到 npm(云原生构建)
|
|
96
|
-
|
|
97
|
-
1. 在 npmjs.com 生成 Access Token(Classic Token 选 **Automation**,或 Granular Token 勾选 **Read and write**)。
|
|
98
|
-
2. 在 CNB 仓库设置中配置环境变量 `NPM_TOKEN`(或放入密钥仓库,并在 `.cnb.yml` 的 `tag_push` 中增加 `imports` 指向密钥仓库)。
|
|
99
|
-
3. push 到 `main` 分支会自动执行安装 + 构建校验;发布正式版时推送 tag:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npm version patch # 0.1.0 -> 0.1.1,自动提交 tag
|
|
103
|
-
git push origin main --tags
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
流水线将自动构建并执行 `npm publish`(`prepublishOnly` 也会兜底执行构建)。
|
|
107
|
-
|
|
108
|
-
## 发布前检查清单
|
|
109
|
-
|
|
110
|
-
- [ ] `package.json` 的 `version` 已升版(与 tag 一致)。
|
|
111
|
-
- [ ] `npm run build` 通过,`dist` 含 `hd-attribute-set.js/.cjs`、`utils.js/.cjs` 及对应 `.d.ts`。
|
|
112
|
-
- [ ] `npm pack --dry-run` 中仅包含 `dist` 与 `README.md`,无源码泄露。
|
|
113
|
-
- [ ] 如使用了组件,需确认使用方已安装 `antd`(peer 依赖,不打包进产物)。
|
|
1
|
+
# hd-attribute-set
|
|
2
|
+
|
|
3
|
+
基于 **TypeScript** 的工具/组件库,使用 Vite 库模式构建,通过 [CNB 云原生构建](https://docs.cnb.cool/) 自动发布到 npm。
|
|
4
|
+
|
|
5
|
+
## 目录结构
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
├── .cnb.yml # CNB 云原生构建流水线配置
|
|
9
|
+
├── index.html # 本地调试入口(playground)
|
|
10
|
+
├── src
|
|
11
|
+
│ ├── index.ts # 包主入口(构建产物入口)
|
|
12
|
+
│ ├── App.tsx / main.tsx # 调试页面
|
|
13
|
+
│ ├── utils # 公共工具方法(多文件)
|
|
14
|
+
│ │ ├── index.ts # 统一出口(barrel)
|
|
15
|
+
│ │ ├── format.ts
|
|
16
|
+
│ │ ├── validate.ts
|
|
17
|
+
│ │ ├── object.ts
|
|
18
|
+
│ │ └── fn.ts
|
|
19
|
+
│ └── hooks # 业务 Hook(解耦后版本)
|
|
20
|
+
│ ├── index.ts
|
|
21
|
+
│ ├── use-btn-deal.ts
|
|
22
|
+
│ ├── use-permission.ts
|
|
23
|
+
│ ├── use-row-selection.ts
|
|
24
|
+
│ └── use-memoized-fn.ts
|
|
25
|
+
├── vite.config.ts # Vite 配置(lib 模式,多入口)
|
|
26
|
+
└── tsconfig.json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 本地开发
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install
|
|
33
|
+
npm run dev # 启动 playground 调试
|
|
34
|
+
npm run build # 构建产物到 dist/
|
|
35
|
+
npm pack --dry-run # 查看将要发布到 npm 的文件清单
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 新增工具方法
|
|
39
|
+
|
|
40
|
+
1. 在 `src/utils/` 下新建文件(如 `string.ts`)并 `export` 方法;
|
|
41
|
+
2. 在 `src/utils/index.ts` 加一行 `export * from './string';`;
|
|
42
|
+
3. `npm run build`,新方法即自动出现在包根路径与 `hd-attribute-set/utils` 两个入口。
|
|
43
|
+
|
|
44
|
+
## 在其他项目中使用
|
|
45
|
+
|
|
46
|
+
安装:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm i hd-attribute-set
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
引入方式(三个入口,按需选择):
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
// 1. 根路径:通用工具
|
|
56
|
+
import { formatMoney, version } from 'hd-attribute-set';
|
|
57
|
+
|
|
58
|
+
// 2. utils 子路径
|
|
59
|
+
import { isEmail, listToTree } from 'hd-attribute-set/utils';
|
|
60
|
+
|
|
61
|
+
// 3. hooks 子路径(已对权限/按钮/表格做解耦,可与任意数据源配合)
|
|
62
|
+
import { useBtnDeal, usePermission, useRowSelection } from 'hd-attribute-set/hooks';
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
CommonJS 环境:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
const { formatMoney } = require('hd-attribute-set');
|
|
69
|
+
const { isPhone } = require('hd-attribute-set/utils');
|
|
70
|
+
const { useBtnDeal } = require('hd-attribute-set/hooks');
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### hooks 用法示例
|
|
74
|
+
|
|
75
|
+
> 所有 hooks 都已与 Redux/ahooks 解耦,权限数据通过 `getAccessConfig` 注入。
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
import { useSelector } from 'react-redux';
|
|
79
|
+
import { useBtnDeal, usePermission } from 'hd-attribute-set/hooks';
|
|
80
|
+
|
|
81
|
+
// 接 Redux
|
|
82
|
+
const access = useSelector(s => s.auth.accessConfig);
|
|
83
|
+
const { controlShowStatus } = useBtnDeal(() => access);
|
|
84
|
+
// 或接任意数据源
|
|
85
|
+
const { hasPermission } = usePermission(() => ({ noPermissionShow: true, list: [], selectAll: true }));
|
|
86
|
+
|
|
87
|
+
const [editVisible, editBtn] = controlShowStatus({
|
|
88
|
+
type: 'edit',
|
|
89
|
+
detail: rowData,
|
|
90
|
+
configBtns: btnConfigs, // 来自后端/配置的按钮列表
|
|
91
|
+
});
|
|
92
|
+
{editVisible && <Button {...editBtn}>编辑</Button>}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 发布到 npm(云原生构建)
|
|
96
|
+
|
|
97
|
+
1. 在 npmjs.com 生成 Access Token(Classic Token 选 **Automation**,或 Granular Token 勾选 **Read and write**)。
|
|
98
|
+
2. 在 CNB 仓库设置中配置环境变量 `NPM_TOKEN`(或放入密钥仓库,并在 `.cnb.yml` 的 `tag_push` 中增加 `imports` 指向密钥仓库)。
|
|
99
|
+
3. push 到 `main` 分支会自动执行安装 + 构建校验;发布正式版时推送 tag:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm version patch # 0.1.0 -> 0.1.1,自动提交 tag
|
|
103
|
+
git push origin main --tags
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
流水线将自动构建并执行 `npm publish`(`prepublishOnly` 也会兜底执行构建)。
|
|
107
|
+
|
|
108
|
+
## 发布前检查清单
|
|
109
|
+
|
|
110
|
+
- [ ] `package.json` 的 `version` 已升版(与 tag 一致)。
|
|
111
|
+
- [ ] `npm run build` 通过,`dist` 含 `hd-attribute-set.js/.cjs`、`utils.js/.cjs` 及对应 `.d.ts`。
|
|
112
|
+
- [ ] `npm pack --dry-run` 中仅包含 `dist` 与 `README.md`,无源码泄露。
|
|
113
|
+
- [ ] 如使用了组件,需确认使用方已安装 `antd`(peer 依赖,不打包进产物)。
|