defineOiyoConfig

声明 Oiyo 工程级约定与扫描目录

defineOiyoConfig() 用于声明 Oiyo 的工程级约定,常见场景包括配置“主包/分包”的页面目录,以及调整自动扫描的来源范围。

使用位置

  • 文件名:oiyo.config.{ts,js,mjs}
  • 目录:项目根目录(与 package.json 同级)
  • 导出:默认导出
oiyo.config.ts
import { defineOiyoConfig } from '@skiyee/oiyo/config'

export default defineOiyoConfig({
  // ...
})
看项目结构里的 oiyo.config.ts 说明

签名

defineOiyoConfig(config: OiyoConfig): OiyoConfig

该函数的主要作用是提供稳定的配置结构与类型提示。

字段

rootDir

项目根目录(index.html 文件所在的位置)。

  • 类型:string
  • 默认值:process.cwd()

srcDir

源码目录。将相对于 rootDir。

  • 类型:string
  • 默认值:<rootDir>/src

dir

目录约定。

若设置绝对路径,则相对于 srcDir

mainPackage

主包页面根目录。

  • 类型:string
  • 默认值:<srcDir>/pages

subPackages

分包页面根目录列表。

  • 类型:string[]
  • 默认值:<srcDir>/packages/ 第一层所有目录

layouts

布局目录。

  • 类型:string
  • 默认值:<srcDir>/layouts

scan

自动扫描源。

apis

API 自动扫描源。

  • 类型:string[] | ApiTarget[]
  • 默认值:['composables/*.ts', '@skiyee/oiyo/runtime']

components

Component 自动扫描源。

  • 类型:string[] | ComponentTarget[]
  • 默认值:['components/**/*.vue']

exclude

路由的排除规则。支持 glob 语法

若设置绝对路径,则相对于 srcDir

  • 类型:string[]
  • 默认值:-

ide

不同小程序平台 IDE 的功能。

open

构建小程序平台时自动打开对应 IDE。

  • 类型:boolean
  • 默认值:false

path

不同平台 IDE 的可执行路径映射。

  • 类型:Partial<Record<MpPlatform, string>>
  • 默认值:-
属于实验性功能,如若有问题可直接反馈。

基础示例

oiyo.config.ts
import { defineOiyoConfig } from '@skiyee/oiyo/config'

export default defineOiyoConfig({
  dir: {
    mainPackage: 'pages',
    subPackages: ['sub-direct', 'sub-nested/order'],
  },
  scan: {
    apis: ['composables'],
    components: ['components'],
  },
})

约束

  • dir.subPackages 声明的是“会参与分包页面扫描/注册”的目录,不是随意的文件夹清单
  • 路径建议使用 / 作为分隔符,以保证跨平台一致性
  • scan 适合用来收敛团队约定,文档中只建议声明业务侧需要感知的扫描来源
自动路由:扫描与生成机制
学习如何通过目录约定将页面拆分到分包中