pangu-chart-cli 1.0.0 → 1.0.1-beta.0
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/LICENSE +1 -1
- package/README.md +61 -130
- package/bin/index.js +4 -3
- package/dist/build/index.js +2 -2
- package/dist/chunk-DKI5UHYE.js +5 -0
- package/dist/dev/index.js +2 -2
- package/dist/index.js +2 -2
- package/dist/utils/index.js +2 -2
- package/dist/viteConfig/base.js +2 -2
- package/dist/viteConfig/chunk-LFITEGP6.js +4 -0
- package/dist/viteConfig/chunk-MQN57SH7.js +13 -0
- package/dist/viteConfig/chunk-OVGQS7LQ.js +2 -0
- package/dist/viteConfig/default.js +2 -2
- package/dist/viteConfig/entry.js +2 -2
- package/dist/viteConfig/index.js +2 -2
- package/dist/viteConfig/vite-plugin-element-namespace.js +2 -2
- package/index.d.ts +84 -41
- package/package.json +60 -36
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -21,17 +21,35 @@
|
|
|
21
21
|
- 可视化图表库打包
|
|
22
22
|
- Element Plus 二次封装组件库
|
|
23
23
|
|
|
24
|
+
## 工具链
|
|
25
|
+
|
|
26
|
+
质量门禁四层分工(各司其职,零重叠):
|
|
27
|
+
|
|
28
|
+
| 层 | 工具 | 命令 | 职责 |
|
|
29
|
+
| ---- | ------ | ----------------------------------- | -------------------------------------------------- |
|
|
30
|
+
| 类型 | tsc | `pnpm typecheck` | 类型安全、接口契约、手写声明漂移守护 |
|
|
31
|
+
| Lint | oxlint | `pnpm lint` | 语法反模式(correctness=error 阻断,suspicious 告警) |
|
|
32
|
+
| 行为 | vitest | `pnpm test` | 68 个行为测试 + 覆盖率阈值门禁 |
|
|
33
|
+
| 格式 | oxfmt | `pnpm format` / `pnpm format:check` | token 风格(单引号、分号、printWidth 100) |
|
|
34
|
+
|
|
35
|
+
> **oxfmt 升级纪律**:oxfmt 锁定精确版本(0.x 阶段 minor/patch 都可能改变默认输出)。升级 oxfmt 必须伴随一次全仓 reformat commit 并复验全部门禁,禁止静默升级。
|
|
36
|
+
|
|
24
37
|
## 安装
|
|
25
38
|
|
|
26
|
-
###
|
|
39
|
+
### 环境要求
|
|
40
|
+
|
|
41
|
+
- **Node.js >= 20**(包为 ESM-only,`"type": "module"`)
|
|
42
|
+
- 图表项目需提供 vite 生态 peer 依赖(vite ^4 及以上均可;pnpm ≥8 / npm ≥7 会自动安装 peer):
|
|
27
43
|
|
|
28
44
|
```bash
|
|
29
|
-
|
|
30
|
-
# 或
|
|
31
|
-
pnpm add -g pangu-chart-cli
|
|
45
|
+
pnpm add -D vite @vitejs/plugin-vue vite-plugin-compression vite-plugin-banner
|
|
32
46
|
```
|
|
33
47
|
|
|
34
|
-
|
|
48
|
+
- 图表项目建议在 package.json 中声明 `"type": "module"`(或在 vite 配置使用 `.mjs` 后缀),否则旧版 vite 会以 CJS 方式 `require` 本包导致失败
|
|
49
|
+
|
|
50
|
+
> **CJS 迁移说明**:自全 ESM 架构起,`require('pangu-chart-cli')` 不再受支持,请统一使用 `import`。
|
|
51
|
+
|
|
52
|
+
### 项目依赖(推荐)
|
|
35
53
|
|
|
36
54
|
```bash
|
|
37
55
|
npm install --save-dev pangu-chart-cli
|
|
@@ -39,6 +57,18 @@ npm install --save-dev pangu-chart-cli
|
|
|
39
57
|
pnpm add -D pangu-chart-cli
|
|
40
58
|
```
|
|
41
59
|
|
|
60
|
+
项目内安装后通过 npm scripts 调用(`package.json` 的 `scripts` 中使用 `vcc build`),此时 vite 可从项目 `node_modules/.bin` 解析。
|
|
61
|
+
|
|
62
|
+
### 全局安装(不推荐)
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npm install -g pangu-chart-cli
|
|
66
|
+
# 或
|
|
67
|
+
pnpm add -g pangu-chart-cli
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> 全局安装的 `vcc` 依赖 PATH 上存在 `vite` 命令:若图表项目未通过 npm scripts 调用,请确保 `vite` 全局可用或在项目内运行。
|
|
71
|
+
|
|
42
72
|
## CLI 命令
|
|
43
73
|
|
|
44
74
|
CLI 工具提供两个命令别名:`vcc` 和 `vis-chart-cli`,以下以 `vcc` 为例。
|
|
@@ -83,11 +113,15 @@ vcc build
|
|
|
83
113
|
vcc b
|
|
84
114
|
```
|
|
85
115
|
|
|
86
|
-
### vcc -v
|
|
116
|
+
### vcc --version / vcc -V / vcc -v
|
|
87
117
|
|
|
88
|
-
|
|
118
|
+
查看当前版本号(三个 flag 等价,退出码 0)。
|
|
89
119
|
|
|
90
120
|
```bash
|
|
121
|
+
vcc --version
|
|
122
|
+
# 或
|
|
123
|
+
vcc -V
|
|
124
|
+
# 或(历史别名)
|
|
91
125
|
vcc -v
|
|
92
126
|
```
|
|
93
127
|
|
|
@@ -112,9 +146,18 @@ vcc -v
|
|
|
112
146
|
|
|
113
147
|
```javascript
|
|
114
148
|
{
|
|
115
|
-
//
|
|
149
|
+
// 全局变量定义(白名单:仅注入 CLI 需要的 8 个 VITE_* 环境变量,不内联整机环境变量)
|
|
116
150
|
define: {
|
|
117
|
-
'process.env':
|
|
151
|
+
'process.env': {
|
|
152
|
+
VITE_CURRENT_CHART_NAME: '...',
|
|
153
|
+
VITE_CURRENT_CHART_VERSION: '...',
|
|
154
|
+
VITE_CURRENT_CHART_AUTHOR: '...',
|
|
155
|
+
VITE_CURRENT_CHART_ELEMENT_CONFIG: '...',
|
|
156
|
+
VITE_BUILD_CHART_DIR: '...',
|
|
157
|
+
VITE_BUILD_CHART_TIME: '...',
|
|
158
|
+
VITE_CURRENT_BUILD_CHART_NAME: '...',
|
|
159
|
+
VITE_CURRENT_BUILD_CHART_NAME_OUT_DIR: '...'
|
|
160
|
+
}
|
|
118
161
|
},
|
|
119
162
|
|
|
120
163
|
// 插件列表
|
|
@@ -189,8 +232,8 @@ export default getConfig({
|
|
|
189
232
|
enable: true,
|
|
190
233
|
entryFile: 'src/index.vue',
|
|
191
234
|
configSrc: 'element-plus/theme-chalk/src/mixins/config.scss',
|
|
192
|
-
namespace: 'MyChart'
|
|
193
|
-
}
|
|
235
|
+
namespace: 'MyChart',
|
|
236
|
+
},
|
|
194
237
|
});
|
|
195
238
|
```
|
|
196
239
|
|
|
@@ -247,15 +290,13 @@ import { getBaseConfig } from 'pangu-chart-cli';
|
|
|
247
290
|
|
|
248
291
|
const baseConfig = getBaseConfig({
|
|
249
292
|
name: 'my-chart',
|
|
250
|
-
version: '1.0.0'
|
|
293
|
+
version: '1.0.0',
|
|
251
294
|
});
|
|
252
295
|
|
|
253
296
|
// 自定义扩展
|
|
254
297
|
export default {
|
|
255
298
|
...baseConfig,
|
|
256
|
-
plugins: [
|
|
257
|
-
/* 自定义插件列表 */
|
|
258
|
-
]
|
|
299
|
+
plugins: [/* 自定义插件列表 */],
|
|
259
300
|
};
|
|
260
301
|
```
|
|
261
302
|
|
|
@@ -295,7 +336,7 @@ import { getPackageInfo } from 'pangu-chart-cli';
|
|
|
295
336
|
|
|
296
337
|
const info = getPackageInfo({
|
|
297
338
|
name: 'my-chart',
|
|
298
|
-
version: '1.0.0'
|
|
339
|
+
version: '1.0.0',
|
|
299
340
|
});
|
|
300
341
|
|
|
301
342
|
console.log(info);
|
|
@@ -318,7 +359,7 @@ console.log(info);
|
|
|
318
359
|
getConfig({
|
|
319
360
|
name: 'my-chart',
|
|
320
361
|
version: '1.0.0',
|
|
321
|
-
elementConfig: false
|
|
362
|
+
elementConfig: false,
|
|
322
363
|
});
|
|
323
364
|
```
|
|
324
365
|
|
|
@@ -341,7 +382,7 @@ getConfig({
|
|
|
341
382
|
getConfig({
|
|
342
383
|
name: 'my-chart',
|
|
343
384
|
version: '1.0.0',
|
|
344
|
-
elementConfig: true
|
|
385
|
+
elementConfig: true,
|
|
345
386
|
});
|
|
346
387
|
|
|
347
388
|
// 实际配置:
|
|
@@ -383,8 +424,8 @@ getConfig({
|
|
|
383
424
|
enable: true,
|
|
384
425
|
entryFile: 'src/components/Chart.vue',
|
|
385
426
|
configSrc: 'element-plus/theme-chalk/src/mixins/config.scss',
|
|
386
|
-
namespace: 'MyCustomChart'
|
|
387
|
-
}
|
|
427
|
+
namespace: 'MyCustomChart',
|
|
428
|
+
},
|
|
388
429
|
});
|
|
389
430
|
```
|
|
390
431
|
|
|
@@ -416,92 +457,6 @@ getConfig({
|
|
|
416
457
|
|
|
417
458
|
3. **避免样式冲突**:所有 Element Plus 组件样式都会使用自定义 namespace,避免与其他 Element Plus 组件库产生样式冲突。
|
|
418
459
|
|
|
419
|
-
## 项目结构
|
|
420
|
-
|
|
421
|
-
```
|
|
422
|
-
pangu-chart-cli/
|
|
423
|
-
├── bin/
|
|
424
|
-
│ └── index.js # CLI 入口(指向 dist/index.js)
|
|
425
|
-
├── core/
|
|
426
|
-
│ ├── index.js # 命令注册(commander)
|
|
427
|
-
│ ├── dev/
|
|
428
|
-
│ │ └── index.js # dev 命令逻辑
|
|
429
|
-
│ └── build/
|
|
430
|
-
│ └── index.js # build 命令逻辑
|
|
431
|
-
├── viteConfig/
|
|
432
|
-
│ ├── index.js # getConfig API 实现
|
|
433
|
-
│ ├── base.js # getBaseConfig/getPackageInfo 实现
|
|
434
|
-
│ ├── default.js # 默认 Vite 配置模板
|
|
435
|
-
│ └── vite-plugin-element-namespace.js # Element namespace 插件
|
|
436
|
-
├── index.d.ts # TypeScript 类型定义
|
|
437
|
-
├── package.json
|
|
438
|
-
├── rollup.config.js # Rollup 打包配置
|
|
439
|
-
└── dist/ # 打包输出目录
|
|
440
|
-
```
|
|
441
|
-
|
|
442
|
-
## 开发指南
|
|
443
|
-
|
|
444
|
-
### 本地构建
|
|
445
|
-
|
|
446
|
-
使用 bun + rollup 进行本地构建:
|
|
447
|
-
|
|
448
|
-
```bash
|
|
449
|
-
pnpm build
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
构建流程:
|
|
453
|
-
|
|
454
|
-
1. `bun ./build/index.js` - 预处理
|
|
455
|
-
2. `rollup --config` - 打包生成 `dist/` 目录
|
|
456
|
-
|
|
457
|
-
### 发布流程
|
|
458
|
-
|
|
459
|
-
使用 `standard-version` 管理版本和生成 CHANGELOG:
|
|
460
|
-
|
|
461
|
-
```bash
|
|
462
|
-
# Patch 版本(1.0.0 -> 1.0.1)
|
|
463
|
-
pnpm release:patch
|
|
464
|
-
|
|
465
|
-
# Minor 版本(1.0.0 -> 1.1.0)
|
|
466
|
-
pnpm release:minor
|
|
467
|
-
|
|
468
|
-
# Major 版本(1.0.0 -> 2.0.0)
|
|
469
|
-
pnpm release:major
|
|
470
|
-
|
|
471
|
-
# Beta 版本(1.0.0 -> 1.0.1-beta.0)
|
|
472
|
-
pnpm release:beta
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
发布到 npm:
|
|
476
|
-
|
|
477
|
-
```bash
|
|
478
|
-
npm publish
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
### 依赖说明
|
|
482
|
-
|
|
483
|
-
**运行时依赖**:
|
|
484
|
-
|
|
485
|
-
- `commander` - CLI 框架
|
|
486
|
-
- `chalk` - 终端颜色输出
|
|
487
|
-
- `ora` - 终端加载动画
|
|
488
|
-
- `cross-spawn` - 跨平台进程执行
|
|
489
|
-
- `dayjs` - 时间处理
|
|
490
|
-
- `await-to-js` - 异步错误处理
|
|
491
|
-
- `yann-fs` - 文件系统工具
|
|
492
|
-
|
|
493
|
-
**开发依赖**:
|
|
494
|
-
|
|
495
|
-
- `rollup` - 打包工具
|
|
496
|
-
- `vite` - 构建核心(用户项目运行时依赖)
|
|
497
|
-
- `standard-version` - 版本管理
|
|
498
|
-
|
|
499
|
-
**用户项目需要安装**:
|
|
500
|
-
|
|
501
|
-
- `vite` - 构建工具
|
|
502
|
-
- `element-plus` - Element Plus 组件库(若使用 elementConfig)
|
|
503
|
-
- `@vitejs/plugin-vue` - Vue 插件
|
|
504
|
-
|
|
505
460
|
### 常见问题
|
|
506
461
|
|
|
507
462
|
**Q: Element Plus 未安装时使用 elementConfig 会报错吗?**
|
|
@@ -523,27 +478,3 @@ A: 输出目录格式为 `<组件名>_v<版本号>`,例如 `my-chart_v1.0.0`。
|
|
|
523
478
|
**Q: UMD 全局变量名命名规则?**
|
|
524
479
|
|
|
525
480
|
A: UMD name 格式为 `<大写组件名>_v<版本号>`(`.` 替换为 `_`),例如 `My-chart_v1_0_0`。
|
|
526
|
-
|
|
527
|
-
## License
|
|
528
|
-
|
|
529
|
-
MIT License
|
|
530
|
-
|
|
531
|
-
Copyright (c) 2024 Yann
|
|
532
|
-
|
|
533
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
534
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
535
|
-
in the Software without restriction, including without limitation the rights
|
|
536
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
537
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
538
|
-
furnished to do so, subject to the following conditions:
|
|
539
|
-
|
|
540
|
-
The above copyright notice and this permission notice shall be included in all
|
|
541
|
-
copies or substantial portions of the Software.
|
|
542
|
-
|
|
543
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
544
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
545
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
546
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
547
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
548
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
549
|
-
SOFTWARE.
|
package/bin/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** @file CLI 可执行入口:转发到构建产物 dist/index.js(vcc 与 vis-chart-cli 两个 bin 名共用) */
|
|
3
|
+
|
|
4
|
+
import '../dist/index.js';
|
package/dist/build/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a as r,b as c,c as o}from"../chunk-DKI5UHYE.js";import f from"fs-extra";import n from"node:fs/promises";import a from"node:path";import{fileURLToPath as d}from"node:url";var m=a.dirname(d(import.meta.url)),u=new Set(["node_modules",".git"]),l=async(t=process.cwd())=>{let e=await n.readdir(t);for(let s of e){if(u.has(s))continue;let i=a.join(t,s);(await n.stat(i)).isDirectory()?await l(i):(s.startsWith("._")||s.startsWith(".DS"))&&await n.unlink(i)}};async function w(){let t=r();await c(t);let e=a.resolve(t,"vite.config.js"),s=a.resolve(t,"vite.config.ts"),i;if(!await f.pathExists(e)&&!await f.pathExists(s)?i=await o(["build","-c",a.resolve(m,"../viteConfig/default.js")],{cwd:t}):i=await o(["build"],{cwd:t}),!i?.success){process.exitCode=1;return}await l(t)}export{w as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import f from"fs-extra";import _ from"node:path";import I from"dayjs";import b from"cross-spawn";var U=()=>{let e=process.cwd(),s=n=>n.split(_.sep).includes("example");for(;s(e);){let n=_.dirname(e);if(n===e)break;e=n}return e},H=async e=>{e=e||U(),await k(e);let s=_.resolve(e,"package.json"),n;try{n=await f.readJson(s)}catch{throw new Error("\u6267\u884C\u5931\u8D25\uFF0C\u5F53\u524D\u56FE\u8868\u627E\u4E0D\u5230 package.json \u6587\u4EF6")}process.env.VITE_CURRENT_CHART_NAME=n.name,process.env.VITE_CURRENT_CHART_VERSION=n.version,n.author!==void 0&&(process.env.VITE_CURRENT_CHART_AUTHOR=n.author),process.env.VITE_CURRENT_CHART_ELEMENT_CONFIG="elementConfig"in n?JSON.stringify(n.elementConfig):"false",process.env.VITE_BUILD_CHART_DIR=e,process.env.VITE_BUILD_CHART_TIME=I().format("YYYY-MM-DD HH:mm");let t=()=>{let o=n.name.split("/").at(-1)??"",l=o.replace(/^\S/,m=>m.toUpperCase())+"_v"+n.version.replaceAll(".","_"),a=`${o}_v${n.version}`;return{VITE_CURRENT_BUILD_CHART_NAME:l,VITE_CURRENT_BUILD_CHART_NAME_OUT_DIR:a}},{VITE_CURRENT_BUILD_CHART_NAME_OUT_DIR:r,VITE_CURRENT_BUILD_CHART_NAME:u}=t();process.env.VITE_CURRENT_BUILD_CHART_NAME=u,process.env.VITE_CURRENT_BUILD_CHART_NAME_OUT_DIR=r},y=async(e,s)=>await h(w(s?.cwd),e,s),P=async(e,s)=>await h(w(s?.cwd),e,s),h=(e,s=[],n={})=>new Promise(t=>{let r=process.platform==="win32",{enableSudo:u=!1,disableColor:o=!1,cwd:l=process.cwd(),stdio:a="inherit",shell:m=!1,...R}=n,T=e,d=[...s];o&&r&&!d.includes("--no-color")&&d.push("--no-color"),!r&&u&&(T="sudo",d=[e,...d]);let A={cwd:l,stdio:a,shell:m,...R},C=b(T,d,A),v=[],N=[];C.stdout?.on("data",c=>{v.push(String(c))}),C.stderr?.on("data",c=>{N.push(String(c))}),C.on("error",c=>{let E=c.message||"\u547D\u4EE4\u542F\u52A8\u5931\u8D25",i="",g=c.code;g==="ENOENT"?i=String(e).includes("vite")?"\u672A\u627E\u5230 vite\uFF1A\u8BF7\u5728\u56FE\u8868\u9879\u76EE\u4E2D\u5B89\u88C5 vite \u4E0E\u76F8\u5173 peer \u4F9D\u8D56\uFF08pnpm add -D vite @vitejs/plugin-vue vite-plugin-compression vite-plugin-banner\uFF09\uFF0C\u6216\u901A\u8FC7 npm scripts \u8FD0\u884C vcc":`\u672A\u627E\u5230\u547D\u4EE4 "${e}"\uFF0C\u8BF7\u5148\u5B89\u88C5 ${e}`:g==="EACCES"?i=r?"\u6743\u9650\u4E0D\u8DB3\uFF01\u8BF7\u4EE5\u7BA1\u7406\u5458\u8EAB\u4EFD\u8FD0\u884C\u7EC8\u7AEF":"\u6743\u9650\u4E0D\u8DB3\uFF01\u8BF7\u786E\u8BA4\u5F53\u524D\u7528\u6237\u6709\u6267\u884C\u6743\u9650\uFF08\u53EF\u5C1D\u8BD5 sudo\uFF09":i=`\u547D\u4EE4\u542F\u52A8\u5931\u8D25\uFF1A${E}`,console.error(i),t({success:!1,stdout:"",stderr:E,status:null,message:i,error:c.stack||E})}),C.on("close",c=>{let E=v.join("").trim(),i=N.join("").trim(),g=c===0,p="";g?p=`\u547D\u4EE4\u6267\u884C\u6210\u529F\uFF1A${e} ${d.join(" ")}`:(i.includes("not found")||i.includes("Package")?p=`\u672A\u627E\u5230\u76EE\u6807\u8D44\u6E90\uFF1A${i.split(`
|
|
3
|
+
`)[0]}`:i.includes("EAI_AGAIN")||i.includes("network")||i.includes("ENOTFOUND")?p="\u7F51\u7EDC\u9519\u8BEF\uFF1A\u65E0\u6CD5\u8FDE\u63A5\u5230\u670D\u52A1\u6216\u955C\u50CF\u6E90\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u914D\u7F6E":i.includes("EACCES")?p=r?"\u6743\u9650\u4E0D\u8DB3\uFF01\u8BF7\u4EE5\u7BA1\u7406\u5458\u8EAB\u4EFD\u8FD0\u884C\u7EC8\u7AEF":"\u6743\u9650\u4E0D\u8DB3\uFF01\u53EF\u5C1D\u8BD5\u542F\u7528 sudo":p=`\u547D\u4EE4\u6267\u884C\u5931\u8D25\uFF08\u9000\u51FA\u7801\uFF1A${c}\uFF09\uFF1A${i||"\u65E0\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F"}`,console.error(p)),t({success:g,stdout:E,stderr:i,status:c,message:p,error:g?null:i||`\u9000\u51FA\u7801\uFF1A${c}`})})}),w=(e=process.cwd())=>{let s=process.platform==="win32"?"vite.cmd":"vite",n=_.join(e,"node_modules",".bin",s);return f.existsSync(n)?n:"vite"};function O(e,s){e.indexOf("v")===0&&(e=e.slice(1)),s.indexOf("v")===0&&(s=s.slice(1));let n=o=>{let[l,a]=o.split("-"),m=l.split(".").map(R=>parseInt(R,10));return{nums:m,pre:a??null,invalid:m.some(Number.isNaN)}},t=n(e),r=n(s);if(t.invalid||r.invalid)return NaN;let u=Math.max(t.nums.length,r.nums.length);for(let o=0;o<u;o++){let l=t.nums[o]??0,a=r.nums[o]??0;if(l>a)return 1;if(l<a)return-1}return t.pre===null&&r.pre===null?0:t.pre===null?1:r.pre===null?-1:t.pre===r.pre?0:t.pre>r.pre?1:-1}var k=async e=>{let s=_.resolve(e,"public","base.json"),n;try{n=await f.readJson(s)}catch{throw new Error("\u6267\u884C\u5931\u8D25\uFF0C\u5F53\u524D\u56FE\u8868\u627E\u4E0D\u5230 base.json \u6587\u4EF6")}let t=n.version,r=_.resolve(e,"package.json"),u;try{u=await f.readJson(r)}catch{throw new Error("\u6267\u884C\u5931\u8D25\uFF0C\u5F53\u524D\u56FE\u8868\u627E\u4E0D\u5230 package.json \u6587\u4EF6")}let o=u.version;if(String(t).includes("-")||String(o).includes("-"))return console.warn(`\u68C0\u6D4B\u5230\u9884\u53D1\u5E03\u7248\u672C\u53F7\uFF08base.json: ${t} / package.json: ${o}\uFF09\uFF0C\u8DF3\u8FC7\u81EA\u52A8\u7248\u672C\u540C\u6B65\uFF0C\u8BF7\u4EBA\u5DE5\u786E\u8BA4`),{name:n.name,version:t};let l=O(t,o),a=t;return l===1?(a=t,u.version=a,await f.outputJson(r,u,{spaces:2,EOL:`
|
|
4
|
+
`})):l===-1&&(a=o,n.version=a,await f.outputJson(s,n,{spaces:2,EOL:`
|
|
5
|
+
`})),{name:n.name,version:a}};export{U as a,H as b,y as c,P as d,h as e,w as f,O as g,k as h};
|
package/dist/dev/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a as c,b as f,d as s}from"../chunk-DKI5UHYE.js";import t from"node:path";import{fileURLToPath as p}from"node:url";import o from"fs-extra";var h=t.dirname(p(import.meta.url)),v="0.0.0.0";async function m(){let e=["dev","--host",v],a=c();await f(a);let i=t.resolve(a,"example"),l=t.resolve(i,"package.json");if(await o.pathExists(l)){let n=t.resolve(i,"vite.config.js"),r=t.resolve(i,"vite.config.ts");!await o.pathExists(n)&&!await o.pathExists(r)?(e.push("--config",t.resolve(h,"../viteConfig/default.js")),await s(e,{cwd:i})):await s(e,{cwd:i})}else{let n=t.resolve(a,"vite.config.js"),r=t.resolve(a,"vite.config.ts");!await o.pathExists(n)&&!await o.pathExists(r)?(e.push("--config",t.resolve(h,"../viteConfig/default.js")),await s(e,{cwd:a})):await s(e,{cwd:a})}}export{m as default};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{program as e}from"commander";import{createRequire as a}from"node:module";import s from"chalk";var{version:c}=a(import.meta.url)("../package.json");e.command("build").alias("b").description("\u6253\u5305").action(async()=>{(await import("./build/index.js")).default()});e.command("dev").alias("d").description("\u542F\u52A8\u670D\u52A1").action(async()=>{(await import("./dev/index.js")).default()});var n=process.argv[2]==="-v"?[process.argv[0],process.argv[1],"--version",...process.argv.slice(3)]:process.argv;e.version(c,"-V, --version","\u8F93\u51FA\u5F53\u524D\u7248\u672C\u53F7").parseAsync(n).catch(o=>{let r=o instanceof Error?o.message:String(o);console.error(s.bold.red("err\uFF1A"),s.bold.red(r||"\u5F02\u5E38\u9519\u8BEF\uFF01")),o instanceof Error&&o.stack&&console.error(s.dim(o.stack)),process.exitCode=1});process.on("uncaughtException",function(o){let r=o?.message||"\u5F02\u5E38\u9519\u8BEF\uFF01";console.error(s.bold.red("err\uFF1A"),s.bold.red(r)),o?.stack&&console.error(s.dim(o.stack)),process.exit(1)});
|
package/dist/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a,b,c,d,e,f,g,h}from"../chunk-DKI5UHYE.js";export{g as compareVersion,a as getCurrentDir,b as initEnv,f as resolveViteCommand,e as runAsyncCmd,c as runCommandAsync,d as runDevSpawn,h as versionHandle};
|
package/dist/viteConfig/base.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a}from"./chunk-LFITEGP6.js";import"./chunk-MQN57SH7.js";import"./chunk-OVGQS7LQ.js";export{a as getConfig};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a as m}from"./chunk-MQN57SH7.js";import{a as T,b as u}from"./chunk-OVGQS7LQ.js";import d from"@vitejs/plugin-vue";import g from"vite-plugin-compression";import I from"vite-plugin-banner";import r from"node:path";var f=e=>e.replace(/\\/g,"/"),R=()=>{let e=process.cwd(),t=n=>n.split(r.sep).includes("example");for(;t(e);){let n=r.dirname(e);if(n===e)break;e=n}return e},C=e=>r.isAbsolute(e)?f(r.normalize(e)):f(r.resolve(R(),e)),b=(e,t)=>{let n=typeof e=="object"&&!Array.isArray(e),s=(n&&"enable"in e?e.enable:!!e)??!1;if(!s)return{enable:s};let i="src/index.vue",o="element-plus/theme-chalk/src/mixins/config.scss",c=C(n&&e?.entryFile||i),a=n&&e?.configSrc||o,l=n&&e?.namespace||t;return{enable:s,entryFile:c,configSrc:a,namespace:l}},O=e=>{let t=u(e),{elementConfig:n,name:s}=T(e),o=R()+"/",{enable:c,entryFile:a,configSrc:l,namespace:p}=b(n,s),E=[],_={};return c&&(E.push(m({entryFile:a,namespace:p})),_.css={preprocessorOptions:{scss:{additionalData:`@forward '${l}' with (
|
|
3
|
+
$namespace: '${p}'
|
|
4
|
+
);`}}}),{define:{"process.env":v()},plugins:[...E,d({isProduction:!0}),g({ext:".gz",deleteOriginFile:!1}),I({outDir:o+t.build.outDir,content:`${e.name} v${e.version} ${e.author?"Author: "+e.author:""} Date: ${process.env.VITE_BUILD_CHART_TIME?process.env.VITE_BUILD_CHART_TIME:Date.now()}`})],server:{host:"0.0.0.0"},..._,build:t.build}},A=["VITE_CURRENT_CHART_NAME","VITE_CURRENT_CHART_VERSION","VITE_CURRENT_CHART_AUTHOR","VITE_CURRENT_CHART_ELEMENT_CONFIG","VITE_BUILD_CHART_DIR","VITE_BUILD_CHART_TIME","VITE_CURRENT_BUILD_CHART_NAME","VITE_CURRENT_BUILD_CHART_NAME_OUT_DIR"],v=()=>Object.fromEntries(A.filter(e=>process.env[e]!==void 0).map(e=>[e,process.env[e]]));export{O as a};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{parse as g}from"@vue/compiler-sfc";function f(s){let{entryFile:i,namespace:e}=s;return!i||!e?(console.warn("\u8BF7\u63D0\u4F9B\u5165\u53E3\u6587\u4EF6\u8DEF\u5F84\u548C\u76EE\u6807\u547D\u540D\u7A7A\u95F4"),{name:"element-namespace-plugin"}):{name:"element-namespace-plugin",transform(n,r){if(r!==i)return n;try{let{descriptor:t}=g(n,{filename:r});if(!t.template)return n;let{newTemplateContent:p,templateModified:o}=u(t.template.content,e),c=n;return o&&(c=h(c,p)),c}catch(t){return console.error("\u5904\u7406\u547D\u540D\u7A7A\u95F4\u548C\u5BFC\u5165\u65F6\u51FA\u9519:",t),n}}}}function u(s,i){let e=/<(el-config-provider|ElConfigProvider)([^>]*?)>/i,n=e.test(s),r=s,t=!1;if(!n)r=`
|
|
3
|
+
<el-config-provider namespace="${i}">
|
|
4
|
+
${s}
|
|
5
|
+
</el-config-provider>
|
|
6
|
+
`.trim(),t=!0;else{let p=s.match(e),o=p?.[1]??"",c=p?.[2]??"";if(!/namespace\s*=\s*["'].*?["']/i.test(c)){let l=c.trim(),m=l?`${l} namespace="${i}"`:`namespace="${i}"`;r=s.replace(e,`<${o} ${m}>`),t=!0}}return{newTemplateContent:r,templateModified:t}}function d(s,i){let e=/(<script[\s\S]*?>[\s\S]*?<\/script>)/gi,n=[],r=s;r=r.replace(e,c=>(n.push(c),`__SCRIPT_PLACEHOLDER_${n.length-1}__`));let t=/(<template>)([\s\S]*)(<\/template>)/,o=r.replace(t,`$1
|
|
7
|
+
${i}
|
|
8
|
+
$3`);return n.forEach((c,a)=>{o=o.replace(`__SCRIPT_PLACEHOLDER_${a}__`,c)}),o}function h(s,i){let e=d(s,i);if(/import\s+.*?(ElConfigProvider).*?\s+from\s+['"]element-plus['"]/i.test(e))return e;let r=/<script([^>]*?)>/i,t=e.match(r),p=`import { ElConfigProvider } from 'element-plus';
|
|
9
|
+
`;if(t){let o=(t.index??0)+t[0].length;e=e.substring(0,o)+`
|
|
10
|
+
`+p+e.substring(o)}else e+=`
|
|
11
|
+
|
|
12
|
+
<script setup>
|
|
13
|
+
${p}</script>`;return e}export{f as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
var o=e=>{let n=e.name.split("/").at(-1)??"",s=n.replace(/^\S/,i=>i.toUpperCase())+"_v"+e.version.replaceAll(".","_"),t=`${n}_v${e.version}`,r=e.elementConfig;return{name:s,outDir:t,elementConfig:r}},a=e=>{let{name:n,outDir:s}=o(e);return{build:{target:["chrome94","edge94","firefox92"],reportCompressedSize:!1,emptyOutDir:!0,outDir:s,cssCodeSplit:!0,lib:{entry:"./index.js",formats:["umd","es"],name:n,fileName:t=>t==="es"?"es/index.js":"index.js"},rollupOptions:{external:["vue"],output:{globals:{vue:"Vue"},chunkFileNames:"es/js/[name]-[hash].js",assetFileNames:t=>t.name?.endsWith(".css")?"es/style.css":"es/assets/[name]-[hash][extname]"}}}}};export{o as a,a as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import{
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a as o}from"./chunk-LFITEGP6.js";import"./chunk-MQN57SH7.js";import"./chunk-OVGQS7LQ.js";import{defineConfig as t}from"vite";var r=e=>{let n=process.env[e];if(n===void 0)throw new Error(`\u73AF\u5883\u53D8\u91CF ${e} \u672A\u8BBE\u7F6E\uFF1A\u8BF7\u901A\u8FC7 vcc build / vcc dev \u542F\u52A8\uFF08CLI \u4F1A\u81EA\u52A8\u6CE8\u5165\u56FE\u8868\u4FE1\u606F\uFF09\uFF0C\u6216\u624B\u52A8\u5BFC\u51FA\u8BE5\u53D8\u91CF\u540E\u91CD\u8BD5`);return n},E={name:r("VITE_CURRENT_CHART_NAME"),version:r("VITE_CURRENT_CHART_VERSION"),author:process.env.VITE_CURRENT_CHART_AUTHOR,elementConfig:JSON.parse(process.env.VITE_CURRENT_CHART_ELEMENT_CONFIG??"false")},C=t(o(E));export{C as default};
|
package/dist/viteConfig/entry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a as e}from"./chunk-LFITEGP6.js";import"./chunk-MQN57SH7.js";import{a as o,b as r}from"./chunk-OVGQS7LQ.js";export{r as getBaseConfig,e as getConfig,o as getPackageInfo};
|
package/dist/viteConfig/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a,b}from"./chunk-OVGQS7LQ.js";export{b as getBaseConfig,a as getPackageInfo};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import{
|
|
1
|
+
/** pangu-chart-cli v1.0.1-beta.0 by Jaxon */
|
|
2
|
+
import{a}from"./chunk-MQN57SH7.js";export{a as default};
|
package/index.d.ts
CHANGED
|
@@ -1,53 +1,96 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/** @file 公共类型声明(手写维护;types.test-d.ts 守护其与源码签名同步) */
|
|
2
|
+
import type { UserConfig } from 'vite';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Element Plus 命名空间配置的对象形态
|
|
6
|
+
*/
|
|
4
7
|
export interface ElementConfigObject {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
/** 是否启用 namespace(缺省按 true 处理) */
|
|
9
|
+
enable?: boolean;
|
|
10
|
+
/** Vue 入口文件路径 */
|
|
11
|
+
entryFile?: string;
|
|
12
|
+
/** Element Plus SCSS 配置文件路径 */
|
|
13
|
+
configSrc?: string;
|
|
14
|
+
/** 自定义命名空间名称 */
|
|
15
|
+
namespace?: string;
|
|
9
16
|
}
|
|
10
17
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
/**
|
|
19
|
+
* 图表包描述(编程接口公共输入)
|
|
20
|
+
*/
|
|
21
|
+
export interface BaseConfig {
|
|
22
|
+
/** 组件包名 */
|
|
23
|
+
name: string;
|
|
24
|
+
/** 当前版本号 */
|
|
25
|
+
version: string;
|
|
26
|
+
/** 作者名(写入 banner,可选) */
|
|
27
|
+
author?: string;
|
|
28
|
+
/** Element Plus 命名空间配置 */
|
|
29
|
+
elementConfig?: boolean | ElementConfigObject;
|
|
16
30
|
}
|
|
17
31
|
|
|
32
|
+
/**
|
|
33
|
+
* 基础构建配置结构(「getBaseConfig」返回的 build 段形状)
|
|
34
|
+
*/
|
|
18
35
|
export interface Result {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
/** vite build 配置段 */
|
|
37
|
+
build: {
|
|
38
|
+
/** 浏览器兼容目标 */
|
|
39
|
+
target: string[];
|
|
40
|
+
/** 是否报告压缩体积 */
|
|
41
|
+
reportCompressedSize: boolean;
|
|
42
|
+
/** 构建前是否清空输出目录 */
|
|
43
|
+
emptyOutDir: boolean;
|
|
44
|
+
/** 输出目录名 */
|
|
45
|
+
outDir: string;
|
|
46
|
+
/** 是否启用 CSS 代码分割 */
|
|
47
|
+
cssCodeSplit: boolean;
|
|
48
|
+
/** 库模式配置 */
|
|
49
|
+
lib: {
|
|
50
|
+
/** 库入口文件 */
|
|
51
|
+
entry: string;
|
|
52
|
+
/** 输出格式列表 */
|
|
53
|
+
formats: string[];
|
|
54
|
+
/** UMD 全局变量名 */
|
|
55
|
+
name: string;
|
|
56
|
+
/** 按格式决定输出文件名 */
|
|
57
|
+
fileName: (format: string) => string;
|
|
58
|
+
};
|
|
59
|
+
/** rollup 选项 */
|
|
60
|
+
rollupOptions: {
|
|
61
|
+
/** 外部化依赖列表 */
|
|
62
|
+
external: string[];
|
|
63
|
+
/** 输出命名与全局变量映射 */
|
|
64
|
+
output: {
|
|
65
|
+
/** UMD 全局变量映射 */
|
|
66
|
+
globals: Record<string, string>;
|
|
67
|
+
/** 代码分块文件名模板 */
|
|
68
|
+
chunkFileNames: string;
|
|
69
|
+
/** 资源文件命名函数 */
|
|
70
|
+
assetFileNames: (assetInfo: { name?: string }) => string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
};
|
|
39
74
|
}
|
|
40
75
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
76
|
+
/**
|
|
77
|
+
* 产物命名信息(「getPackageInfo」的返回)
|
|
78
|
+
*/
|
|
79
|
+
export interface PackageInfo {
|
|
80
|
+
/** UMD 全局变量名 */
|
|
81
|
+
name: string;
|
|
82
|
+
/** 输出目录名 */
|
|
83
|
+
outDir: string;
|
|
84
|
+
/** 透传的原 elementConfig 值 */
|
|
85
|
+
elementConfig?: boolean | ElementConfigObject;
|
|
50
86
|
}
|
|
51
87
|
|
|
88
|
+
declare function getBaseConfig(config: BaseConfig): Result;
|
|
89
|
+
declare function getPackageInfo(config: {
|
|
90
|
+
name: string;
|
|
91
|
+
version: string;
|
|
92
|
+
elementConfig?: boolean | ElementConfigObject;
|
|
93
|
+
}): PackageInfo;
|
|
94
|
+
declare function getConfig(config: BaseConfig): UserConfig;
|
|
52
95
|
|
|
53
|
-
|
|
96
|
+
export { getBaseConfig, getPackageInfo, getConfig };
|
package/package.json
CHANGED
|
@@ -1,55 +1,79 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pangu-chart-cli",
|
|
3
|
-
"version": "1.0.0",
|
|
3
|
+
"version": "1.0.1-beta.0",
|
|
4
4
|
"description": "pangu-chart-cli",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pangu-chart-cli",
|
|
7
|
+
"vcc",
|
|
8
|
+
"vis-chart-cli"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Jaxon",
|
|
5
12
|
"bin": {
|
|
6
13
|
"vcc": "bin/index.js",
|
|
7
14
|
"vis-chart-cli": "bin/index.js"
|
|
8
15
|
},
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"release:beta": "standard-version --prerelease beta"
|
|
16
|
-
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"bin",
|
|
19
|
+
"index.d.ts"
|
|
20
|
+
],
|
|
21
|
+
"type": "module",
|
|
17
22
|
"main": "./dist/viteConfig/entry.js",
|
|
18
|
-
"module": "./dist/viteConfig/entry.js",
|
|
19
23
|
"types": "./index.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./index.d.ts",
|
|
27
|
+
"import": "./dist/viteConfig/entry.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"registry": "https://registry.npmjs.org/"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "node build.mjs",
|
|
35
|
+
"test": "vitest",
|
|
36
|
+
"test:coverage": "vitest --coverage",
|
|
37
|
+
"typecheck": "tsc --noEmit",
|
|
38
|
+
"prepublishOnly": "pnpm lint && pnpm format:check && pnpm typecheck && pnpm build && pnpm vitest run",
|
|
39
|
+
"lint": "oxlint",
|
|
40
|
+
"lint:fix": "oxlint --fix",
|
|
41
|
+
"format": "oxfmt --write",
|
|
42
|
+
"format:check": "oxfmt --check"
|
|
43
|
+
},
|
|
20
44
|
"dependencies": {
|
|
21
|
-
"await-to-js": "^3.0.0",
|
|
22
45
|
"chalk": "^4.1.2",
|
|
23
46
|
"commander": "^10.0.1",
|
|
24
47
|
"cross-spawn": "^7.0.6",
|
|
25
48
|
"dayjs": "^1.11.11",
|
|
26
|
-
"
|
|
27
|
-
"yann-fs": "^1.6.0"
|
|
49
|
+
"fs-extra": "^11.3.5"
|
|
28
50
|
},
|
|
29
51
|
"devDependencies": {
|
|
30
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
52
|
+
"@types/chalk": "^2.2.4",
|
|
53
|
+
"@types/cross-spawn": "^6.0.6",
|
|
54
|
+
"@types/fs-extra": "^11.0.4",
|
|
55
|
+
"@types/node": "^20.19.43",
|
|
56
|
+
"@vitejs/plugin-vue": "^6.0.8",
|
|
57
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
58
|
+
"@vue/compiler-sfc": "^3.4.0",
|
|
59
|
+
"esbuild": "^0.25.0",
|
|
60
|
+
"glob": "^10.3.0",
|
|
61
|
+
"oxfmt": "0.66.0",
|
|
62
|
+
"oxlint": "^1.81.0",
|
|
63
|
+
"typescript": "7.0.2",
|
|
64
|
+
"vite": "^7.0.0",
|
|
65
|
+
"vite-plugin-banner": "^0.7.1",
|
|
66
|
+
"vite-plugin-compression": "^0.5.1",
|
|
67
|
+
"vitest": "^4.1.9"
|
|
39
68
|
},
|
|
40
|
-
"
|
|
41
|
-
"
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"@vitejs/plugin-vue": ">=4",
|
|
71
|
+
"@vue/compiler-sfc": ">=3.2",
|
|
72
|
+
"vite": ">=4",
|
|
73
|
+
"vite-plugin-banner": ">=0.2",
|
|
74
|
+
"vite-plugin-compression": ">=0.5"
|
|
42
75
|
},
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
"vis-chart-cli"
|
|
47
|
-
],
|
|
48
|
-
"author": "Jaxon",
|
|
49
|
-
"license": "MIT",
|
|
50
|
-
"files": [
|
|
51
|
-
"dist",
|
|
52
|
-
"bin",
|
|
53
|
-
"index.d.ts"
|
|
54
|
-
]
|
|
76
|
+
"engines": {
|
|
77
|
+
"node": ">=20"
|
|
78
|
+
}
|
|
55
79
|
}
|