fineui-upgrade について
fineui-upgradeは、FineUIプロジェクトをv10以降のメジャーバージョンへ移行するための開発スキルです。プロジェクトの記述方式に応じて破壊的変更を絞り、コード変更前に移行計画の作成と確認を行います。
主な機能
- 01FineUI v10以降に対応
- 02記述方式に応じた変更の選別
- 03バージョンごとの破壊的変更確認
- 04コード変更前の移行計画作成
- 05変更と検証の手順案内
活用シーン
- 01FineUIの複数バージョン移行を計画
- 02影響を受けるコード箇所の特定
- 03編集前に動作変更を確認
- 04移行後のビルドとHTML表示を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sanshi/ fineui-skills --skill fineui-upgradeインストール後、Claude Code で/fineui-upgradeを入力して読み込まれたか確認します。
同梱ファイルreferences/breaking-changes.md
詳細
プロジェクトの README よりFineUI 版本升级技能(Upgrade)
把现有 FineUI 项目从旧的大版本升级到更高的大版本,只覆盖 v10 及以上(v9 及以下不在范围内)。
版本自检(先做)
- 本技能内置的高影响破坏性变更清单覆盖到 v16.0。
- 若用户的目标版本高于 v16.0 → 告知用户:本技能可能未包含更新版本的破坏性变更,建议先更新本技能(
npx skills update),再继续。 - 若源版本或目标版本 ≤ v9 → 告知用户:本技能只覆盖 v10 及以上,v9 及以下请参考官方在线发布历史 https://fineui.com/versions/ 。
升级流程
按顺序执行,不要跳步。每一步用中括号标注是「告知用户后继续」还是「询问用户并等待」。
- 确定版本区间 —— [询问用户] 当前 FineUI 版本、目标版本。若用户不确定当前版本,从项目里的
FineUI.js版本注释、NuGet 包版本或web.config/csproj判断,并 [告知用户] 你的判断。 - 确定写法 —— [告知用户] 项目属于哪种写法(F.js / Pro / Core-MVC / Core-RazorForms / Core-RazorPages / Java)。判定线索见
fineui-foundation技能。只需处理该写法相关的破坏性变更(清单里[JS]/[Pro]/[Core]标注的按需取用)。若项目是 FineUI.Java:它首发即 v16.0,不存在「从旧版本升级」的场景;只有其复用的 F.js 客户端破坏性变更(清单里[JS]标注、且体现在客户端 API/渲染上的项)才与之相关,C#/.NET 专属的[Pro]/[Core]服务端变更不适用。 - 对照破坏性变更 —— 读 references/breaking-changes.md,把版本区间内每一条与项目代码比对。跨多个大版本时,逐版本过一遍,优先处理“HTML 编码安全主线”和 v16 的事件/回发迁移。
- 生成迁移清单 —— 产出一个 Markdown 文件(如
FINEUI_UPGRADE_PLAN.md),逐项列出:受影响的文件/代码位置、变更点、具体怎么改(给出改前/改后)。先写清单,不要直接改代码。 - 逐项确认 —— [询问用户] 对“行为变更类”(如 HBox 高度填充、行高定义、DropDownList.Text 语义)逐项确认是接受新行为还是保持旧行为;对“改名类”(DateParseString、closeArgument、Active→Activate 等)默认直接改。
- 应用变更 —— 按确认后的清单改代码。改完 [告知用户] 改了哪些文件。
- 验证 —— [告知用户] 建议用户:JS 端
npm run build-f或直接跑页面;Core 端dotnet build;Pro 端用 VS2022 msbuild 编译;并人工核对受 HTML 编码影响的页面(菜单、标题、提示里原本的 HTML 是否仍正常显示)。
参考文档
| 文件 | 内容 |
|---|---|
| references/breaking-changes.md | v10+ 各大版本破坏性变更清单 + 迁移办法 + HTML 编码主线 |
完整逐条以官方在线发布历史为准:https://fineui.com/versions/ (在其中搜索“不兼容”)。
约束与规则(Constraints & Rules)
- 只处理 v10+:源/目标版本 ≤ v9 时明确告知不覆盖。
- 先出清单、后改代码:第 4 步产出迁移清单并让用户过目,不要一上来就批量改。
- 按写法过滤:一个项目通常只用一种写法,只处理该写法相关的破坏性变更;
[JS]/[Pro]/[Core]标注要看清。 - ESM / class 化不是使用者的破坏性变更:v15.0 的组件层 ESM 化、ES2022 class 化官方明确“不影响对外 API”,不要据此改用户代码。
- HTML 编码是重灾区:跨 v10 至 v16 升级时,重点排查原本依赖“文本按 HTML 渲染”的地方(菜单、标题、提示、空状态 EmptyText、消息框),逐一改为可信 HTML 声明(RawHtml,见
fineui-foundation的 rawhtml.md)。区分可信内容与用户输入——用户输入不要声明为可信。 - 绝不编造变更:不确定某属性/方法在目标版本是否变化时,查在线发布历史(https://fineui.com/versions/ )或官网,别猜。
官方资源
- 在线发布历史:https://fineui.com/versions/ (权威,逐版本“不兼容”标注)
- 在线 API:JS https://fineui.com/js/api/ · Pro https://fineui.com/pro/api/ · Core https://fineui.com/core/api/
コメント
Markdown 対応