@epxing/cli 0.5.0-beta.11 → 0.5.0-beta.12
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/API.md +2 -2
- package/README.md +3 -1
- package/dist/cli.mjs +1 -1
- package/dist/skills/epxing-frontend-vue3-migrate/SKILL.md +7 -5
- package/dist/skills/epxing-frontend-vue3-migrate/pitfalls.md +786 -743
- package/dist/skills/epxing-frontend-vue3-migrate/references/upgrade-review.md +87 -0
- package/dist/skills/epxing-frontend-vue3-migrate/scripts/check-draggable-slots.cjs +36 -0
- package/dist/skills/epxing-frontend-vue3-migrate/scripts/check-icon-migration.cjs +56 -0
- package/dist/skills/epxing-frontend-vue3-migrate/scripts/check-list-slots.cjs +73 -0
- package/package.json +1 -1
package/API.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
独立工程命令行工具,终端命令名为 epxing。/vite 提供产品构建插件,根入口不提供业务运行时。
|
|
4
4
|
|
|
5
|
-
本页对应包版本 `0.5.0-beta.
|
|
5
|
+
本页对应包版本 `0.5.0-beta.12`。导出名、子路径和签名从当前源码、package.json 与类型声明生成。
|
|
6
6
|
|
|
7
7
|
## 安装与使用
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
```sh
|
|
11
|
-
npm install -g @epxing/cli@0.5.0-beta.
|
|
11
|
+
npm install -g @epxing/cli@0.5.0-beta.12
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
独立的工程开发工具,包含交互菜单、开发服务、产品库构建、创建、Vue3 迁移、静态检查和升级技能安装。创建和升级默认使用 `@epxing/*` 独立包,版本留空时查询最新 `beta` 并固定到具体版本,没有 `beta` 时使用 `latest`;可用 `--packages-version` 指定版本或标签。CLI 使用自己的版本号。创建和升级会生成产品使用说明;`@epxing/cli/vite` 提供产品构建插件,不依赖聚合包中的构建工具。
|
|
6
6
|
|
|
7
|
-
本批测试版本:`@epxing/cli@0.5.0-beta.
|
|
7
|
+
本批测试版本:`@epxing/cli@0.5.0-beta.12`,平台包 `5.3.0-beta.5`,均使用 npm 公网 `beta` 标签。CLI 与平台独立版本,本次不升级平台包。完整流程见文档站“CLI 创建、升级与产品使用”;各包公开 API 随安装包的 `API.md` 提供。
|
|
8
|
+
|
|
9
|
+
`0.5.0-beta.12` 合并考核升级经验,随技能交付跨产品复核清单及列表插槽、拖拽、图标三个只读扫描脚本。模型与样式按组件复核,覆盖模板、JSX/render、包装与继承链;扫描零命中不能替代未覆盖场景验收。CLI 更新不会覆盖已有产品技能,更新前须比较并保留自定义内容;新建目录可运行 epxing skill install 安装完整技能。
|
|
8
10
|
|
|
9
11
|
`0.5.0-beta.11` 将按需库的组件 CSS 放入对应 JS,模块加载完成前同步注入,共享样式去重;index.css 保留空文件兼容已登记 URL,整库兜底自带全部样式。可视化、设计器和预览组件写入预取排除清单,实际使用仍正常加载。新平台选择性预取普通组件;旧平台由新壳关闭后台预取。全量构建仍使用原有整体 CSS。Vite 深层动态导入仍引用的 CSS 文件继续保留并随组件按需加载。
|
|
10
12
|
|
package/dist/cli.mjs
CHANGED
|
@@ -48,7 +48,7 @@ function installSkill (args, cwd) {
|
|
|
48
48
|
const unknown = args.filter(arg => arg !== '--force')
|
|
49
49
|
if (unknown.length) throw new Error(`不支持的参数:${unknown.join(' ')}`)
|
|
50
50
|
const dest = path.join(custom ? path.resolve(dir, custom) : path.join(dir, '.claude/skills'), skillName)
|
|
51
|
-
const files = ['SKILL.md', 'pitfalls.md', 'scripts/fix-eval-paths.cjs']
|
|
51
|
+
const files = ['SKILL.md', 'pitfalls.md', 'references/upgrade-review.md', 'scripts/fix-eval-paths.cjs', 'scripts/check-list-slots.cjs', 'scripts/check-draggable-slots.cjs', 'scripts/check-icon-migration.cjs']
|
|
52
52
|
if (!force && files.some(file => fs.existsSync(path.join(dest, file)))) {
|
|
53
53
|
throw new Error(`技能已存在:${dest}。如需替换,核对自定义内容后使用 --force。`)
|
|
54
54
|
}
|
|
@@ -27,7 +27,11 @@ epx 的产品/项目远程库(`window.library.<pkg>`,由 `FM_SYSTEM_WEBPACK`
|
|
|
27
27
|
|
|
28
28
|
审核详情空白、数据已返回但持续加载时,按 [F28](pitfalls.md#f28-审核详情空白加载遮罩残留与懒加载页签计数) 检查上下文参数的 DOM 透传、JSX 分支指令清理及懒加载配置时序,并在授权范围修复确定命中项。
|
|
29
29
|
|
|
30
|
-
Claude Code 项目技能放在 `.claude/skills/epxing-frontend-vue3-migrate/`,同步本文件、`pitfalls.md
|
|
30
|
+
Claude Code 项目技能放在 `.claude/skills/epxing-frontend-vue3-migrate/`,同步本文件、`pitfalls.md`、`references/` 和 `scripts/`;技能描述供自动匹配,不能保证每次命中。未自动选中时可显式调用 `/epxing-frontend-vue3-migrate`。更新产品已有技能前先比较并保留其自定义内容;仓库修改不会自动更新产品副本或已发布 CLI。
|
|
31
|
+
|
|
32
|
+
## 共性问题复核入口
|
|
33
|
+
|
|
34
|
+
每次升级先读 [跨产品升级复核](references/upgrade-review.md),在迁移前、源码转换后和交付前执行其中的复核。模型协议与样式是每个组件的必检项,覆盖模板、JSX/render、包装组件及继承链;沿用 E2 台账记录实际协议、来源、结论和证据。修复一处后检查同类结构,不能只修用户点出的页面。只读扫描不覆盖的模型、动态样式和运行分支必须另行核实,构建成功或扫描零命中不能关闭这些检查。
|
|
31
35
|
|
|
32
36
|
## 先判断升级类型
|
|
33
37
|
|
|
@@ -160,7 +164,7 @@ Claude Code 项目技能放在 `.claude/skills/epxing-frontend-vue3-migrate/`,
|
|
|
160
164
|
- 样式是否泄漏:涉及 scoped、`:deep()` 或全局样式变更时,用最终懒加载产物记录外部同名元素(如 `.avatar`、`.container`)加载组件前后的计算样式;覆盖组件加载后、离开页面及进入其他页面的状态。组件内有效且组件外不受影响,才能验收(F15);
|
|
161
165
|
- 工具栏选择框与按钮:核对选择框宽度、父容器布局及 `getBoundingClientRect()` 的纵向中心位置;按 F20 检查升级后不再享有的旧垫片默认值,同时确认表单内整行选择框仍按设计占满可用宽度;
|
|
162
166
|
- 差异定性:`el-table` 固定列会复制一份 DOM(Vue2 Element UI 行数翻倍、Vue3 Element Plus 不翻)——比对「共 N 条 / 首行文本」而非 DOM 元素数,否则把「翻倍」误当差异;
|
|
163
|
-
-
|
|
167
|
+
- **静态命中仅列候选**:核对当前消费方、目标宿主和实际插槽内容;旧宿主曾兼容 JSX slot=,不能推断原生 Vue3 制品仍兼容。按 F31 验证具名插槽与真实菜单,按 F24 验证模型与可见内容。
|
|
164
168
|
|
|
165
169
|
## 按需值不值(实测,别想当然)
|
|
166
170
|
|
|
@@ -180,9 +184,7 @@ Claude Code 项目技能放在 `.claude/skills/epxing-frontend-vue3-migrate/`,
|
|
|
180
184
|
|
|
181
185
|
## 部署前必查
|
|
182
186
|
|
|
183
|
-
1.
|
|
184
|
-
没有就只能走降级②(壳自建 wrapper),没有集中预取、`deps.json` 也没人读——
|
|
185
|
-
**平台不先升级,产品这边开按需是白开**。
|
|
187
|
+
1. **核实目标宿主加载能力**:检查公开加载契约、实际运行时能力及组件加载证据;字符串搜索或注册数量不能证明按需 ABI 完整可用。按当前协议验证降级与预取,不能用产品打包配置代替宿主能力。
|
|
186
188
|
2. **按需形态必须传整个 `lib/` 目录**,不是 `index.js` + `index.css` 两个文件。
|
|
187
189
|
`FM_SYSTEM_WEBPACK` 里仍只配那两条 url,其余按相对路径取。
|
|
188
190
|
3. **`chunks/` 的 `import()` 需要文件服务给 CORS 头**,跨域没配会整库降级。
|