@ethisyscore/vite-plugin (中文(简体) )
EthysCore 插件侧面的 Vite 插件收藏 。 它提供
为平台支持的每个 UI 渲染模式构建通道 – 显示驱动
HTML条目,合同A SDUI计划验证和排放,合同B
工人捆绑,平台反应多页捆绑管弦乐器,以及 Tier U
iframe-sandbox pass —— 外加从插件中获取表单的代码
routeMeta.json。 。 。 .
交集模式/信任层面概览见 顶级读取器。用于 每个合同作者的行走记录
docs/authoring/。 。 。 .
导出表面
每个 Vite 插件厂返回一个标准 Vite Plugin; 电线那一个(s)
匹配您的渲染模式为 vite.config.ts。 。 。 .
| 导出 | 目的 |
|---|---|
ethisysContractAPlugin | 合同A 通过 ——对照已关闭词汇验证 SDUI 树,并在构建时释放声明资源/反应规则 |
validateDeclarativeResource, (中文(简体) ), validateReactiveRule | 独立的SDUI + 反应规则验证器(ValidationResult 编号 : ValidationFailure用于测试和工具 |
ethisysContractBPlugin | 合同B 通过——发送Web Worker捆绑及其导入地图(CONTRACT_B_SEMANTIC_PRIMITIVES, (中文(简体) ), CONTRACT_B_RUNTIME_IMPORTS, (中文(简体) ), CONTRACT_B_IMPORT_MAP_ALLOWLIST(中文(简体) ) |
ethisysPlatformReactPlugin | 平台反应 通过 – 每个申报页面构建一个无害环境管理捆绑 |
buildPlatformReactPages, (中文(简体) ), rewriteAliasedExternalImports, (中文(简体) ), virtualPageEntry | 多块管弦乐器:每页一个孤立的Vite子架构,主机-外部调试(PLATFORM_REACT_EXTERNALS, (中文(简体) ), PLATFORM_REACT_DEDUPE)和主机装入器导入重写 |
generatePlatformReactManifest, (中文(简体) ), computePlatformReactPages | 构建步码源( E) feature.manifest.json +该 extension.manifest.json 重叠从 routeMeta.json |
parseExportedNames | 一个模块的源文本的运行时名导出——代码源如何解决其导出名称与其文件名不同的视图 |
parsePlatformReactPages | 测试快照测试平台的辅助工具 |
ethisysIframeSandboxPlugin, (中文(简体) ), buildIframeSandboxPages | U级 iframe-sandbox通过——有SHA-256文摘排放的跨原生沙箱页面 |
ethisysManifestPlugin | 后遗症表型驱动传出——自动传出 index.html 宣布为 source 字段 |
典型用途
// vite.config.ts for a PlatformReact plugin
import { defineConfig } from "vite";
import { ethisysPlatformReactPlugin } from "@ethisyscore/vite-plugin";
export default defineConfig({
plugins: [ethisysPlatformReactPlugin({ /* manifest + page options */ })],
});
大多数插件从不直接调用这些.. cc package 驱动正确的通过
用于该插件所声明的渲染模式。 当你维持时,到达工厂
(a) 在测试中标出或需要验证器/编码.
怎么样 generatePlatformReactManifest 决定 a useView 名称
每页 useView("<module>", "<Name>") 呼叫成为该页面的一个条目
views 地图,以及 build-pages 用电线接它 名称 导入
(单位:千美元)import { <Name> } from "<adapter module>") (中文(简体) ). <Name> 解决
适配器树, 按此顺序 :
-
按文件名 - 一个适配器文件,其基名是
<Name>(例如:.CompanyCostsView→src/adapter/finance/CompanyCostsView.tsx) (中文(简体) ). 这是 原创且仍为取胜规则, 因此遵循文件名的插件 公约一如既往地解决了问题. -
按导出名称 - 否则,单一适配器文件: 出口
<Name>。适配器文件可以合法地以名称导出其组件 其文件名以外的文件名 :// src/adapter/chat/ChatChannelCreateFormView.tsx export function ChatChannelCreateFormView(/* … */) { /* … */ } export { ChatChannelCreateFormView as ChatChannelCreateForm };useView("chat", "ChatChannelCreateForm")运行时正确, 现在 生成.export function|const|let|var|class X, (中文(简体) ),export { X }, (中文(简体) ),export { X as Y }财务报告和审定财务报表export { X } from "…"全部数起.export default …故意这样做 没有 ——默认导出无法满足 命名的导入—— 也不适用于纯类型出口( q)export type编号 :export interface),在运行时被去除.export * from "…"离开 因此,只有这样才能到达的视图仍然报告为 取而代之的是无法解决的,而不是被错误地解决. -
两个文件导出同名文件 − 生成器失败, 命名每个 候选人。 选择一个会编译,然后使组件出错 。 给 基准名(规则1总是胜出)或重命名视图的预定文件.
-
没有匹配 − 生成器失败(除非
strict: false) (中文(简体) ). 此错误 传递点 :useView是一个表征,不是导入,所以 令人不满意的呼叫使得"View不可用"在绿色建筑后方的运行时间.
退休的 SDK 软件包
平台反应构建拒绝导入已退休的 SDK 软件包, 将文件和固定命名
(单位:千美元)RETIRED_SDK_PACKAGES, (中文(简体) ), rejectRetiredSdkPackages) (中文(简体) ). @ethisyscore/core-utils 是第一个:运行
npx ethisyscore-migrate-core-utils # in the plugin's UI folder; --dry-run to preview
npm install
它重写每个核心用途导入( 组织格式化为 @ethisyscore/plugin-ui/org-format, (中文(简体) ),
其他的都给 @ethisyscore/foundation-utils 在同一个子路径),并互换依赖性
package.json。见 向核心用途迁移。 。 。 .
构建和测试
npm ci && npm run build && npm test
最后更新:2026-07-10