内部配置包

内部配置包总览

internal/ 下的 tsconfig / config / uno-config 三个工程化配置包

概览

internal/ 目录存放面向仓库内部的工程化配置包。它们被多个 workspace 共享,避免 tsconfig / oxlint / vitest / uno 配置在每个包里重复维护:

internal/
├── tsconfig/       # @skyroc/tsconfig    7 个共享 TS 编译预设
├── config/         # @skyroc/config      4 个 Oxlint 预设 + Vitest 共享配置
└── uno-config/     # @skyroc/uno-config  UnoCSS presetSoybeanAdmin

快速上手

引用方式
@skyroc/tsconfig"extends": "@skyroc/tsconfig/web-app.json"
@skyroc/config(Oxlint)"extends": ["../../internal/config/oxlint/react.json"](相对路径)
@skyroc/config(Vitest)import { baseTestConfig } from '@skyroc/config/vitest'
@skyroc/uno-configimport { presetSoybeanAdmin } from '@skyroc/uno-config'

Oxlint 预设走相对路径而不是包名子路径——.oxlintrc.jsonextends 由 oxlint 自己解析,不经过 Node 的 exports 字段,详见 @skyroc/config

三个包速览

目录包名内容private构建
tsconfig@skyroc/tsconfig7 个 *.json TS 预设无(纯 JSON)
config@skyroc/config4 个 Oxlint JSON 预设 + Vitest TS 预设tsdown → dist/(仅 vitest 部分)
uno-config@skyroc/uno-configUnoCSS presetSoybeanAdmin()源码直出 src/publishConfig 才指向 dist/

三者里只有 @skyroc/uno-config 没有声明 private: true,带 publishConfig,是可发布到 npm 的;另外两个只在 workspace 内通过 workspace:* 消费。

为什么单独成包

收益说明
单点维护调 TS 严格度、换 vitest 默认环境、加一条 lint 规则,只改一处
新建包零样板新包只需 extends 预设即可拿到完整配置
跨平台预设tsconfig 提供 base / library / node / web / web-app / RN / RN-app 七种基线
强约束通过预设强制全仓库行为一致(如 verbatimModuleSyntax、禁用 useCallback

代价是升级影响面大:改预设会同时影响所有 extends 它的包,引入新规则要一次性修完所有违规。

与 engineering 文档的关系

本目录描述包本身——提供哪些预设、导出哪些常量、如何被消费;规则细节与规范说明放在 guide/engineering:

主题对应文档
Oxlint 规则细节与格式化Lint 与格式化
Vitest 用法与测试组织测试
TypeScript 策略TypeScript 配置
新包该 extends 哪个预设新建包流程
UnoCSS / Tailwind 选型@skyroc/tailwind-plugin

包命名

uno-config 与其他内部包统一使用 @skyroc/* scope,见 命名规范

相关文档

Last updated on