Skyroc Admin Docs
Shared

跨端共享包总览

packages/shared、hooks、primitives —— 跨端可复用的纯类型 / 跨端 hooks / 表单 primitive

定位

packages/sharedpackages/hookspackages/primitives 三个目录都属于「跨端共享层」——它们要么是零依赖的纯数据/类型,要么是 React 跨端的 hooks 与 primitive,可同时服务 Web / React Native / 小程序。

详细的准入标准见 命名规范 · shared 准入规则

包列表

目录包名形态跨端
shared/ui-tokens@skyroc/ui-tokens纯 TS 常量Web / RN / MiniApp
shared/ui-types@skyroc/ui-types纯类型Web / RN / MiniApp
hooks@skyroc/hooksReact hooks(含 ./web 子入口)RN 安全 + Web 增强
primitives/filed-form@skyroc/formReact 表单 primitiveReact 通用

设计原则

1. shared 必须「零或极轻依赖」

packages/shared/* 不允许引入 React 运行时 / DOM API / RN API / 大型库(antd、tailwindcss 等)。具体见 shared 准入规则

例如:

  • defaultBrandColors(hex 常量)放 @skyroc/ui-tokens
  • ❌ OKLCH 调色板生成算法(依赖 colord / culori)→ 不能放 shared,要放 @skyroc/color

2. hooks 用平台子入口隔离

@skyroc/hooks 主入口(.RN 安全,浏览器专用 hooks 放 ./web

import { useCaptcha } from '@skyroc/hooks';         // ✅ RN / Web 通用
import { useCopy } from '@skyroc/hooks/web';        // ✅ 仅 Web

Native 端引用 . 不会误打包 navigator.clipboard 等浏览器 API。

3. primitives 是「能力底座」

@skyroc/form 是典型的 primitive:它定义了一套类型安全的表单状态引擎,但不绑定具体 UI。

  • @skyroc/web-uiForm 组件基于它实现
  • 将来 Native UI 库也可以基于同一个 form-core 实现

与 @core 的区别

维度@core/*shared/* + hooks + primitives
形态运行时基础设施(请求 / 状态 / 日志…)纯数据 + 类型 + 跨端 hooks / primitive
React 依赖部分(state / service)视包而定(form / hooks 需要)
典型例子@skyroc/service@skyroc/axios@skyroc/ui-tokens@skyroc/form

依赖关系

@skyroc/ui-tokens(无依赖)

@skyroc/tailwind-plugin(Web)

@skyroc/ui-types(仅 clsx)

@skyroc/web-ui(Web)

@skyroc/hooks(ahooks)

@skyroc/web-admin-layouts / @skyroc/web-admin-theme / apps/admin

@skyroc/form (@skyroc/type-utils + @skyroc/utils)

@skyroc/web-ui (Form preset)

推荐阅读

On this page