开发
当前 Oak 模板已经移除了旧的“纯前台模式”。开发时应把后端运行态视为默认组成部分:web / 小程序 / App 负责目标端渲染,server:start 负责真实的 Oak 后端运行、数据库访问、aspect、endpoint、watcher、timer 和 routine。
1. 生成领域代码
修改项目实体,或升级依赖模块实体产物后,先执行:
npm run make:domain
依赖模块实体会优先从 es/entities 读取,其次才是 lib/entities 和 src/entities。生产发布包不应要求发布 src。
如果增删 Oak 依赖模块,还应执行:
npm run project:init
npm run make:dep
普通应用模板的 postinstall 已经会自动执行 project:init && make:domain && make:dep,但依赖发生变化时仍建议显式按这个顺序执行一次,避免领域类型仍引用旧的依赖实体。
2. Web 开发
最常用命令是:
npm run dev
它等价于同时运行:
npm run server:start
npm run start:web
start:web 只启动 web 目标端的 Vite 开发服务,默认端口是 3000。真正的后端服务由 server:start 启动,通常监听 3001。不要再把 start:web 理解成“前端自己跑完全部 Oak 逻辑”的旧前台模式。
3. 小程序开发
新应用先添加小程序 workspace:
oak-cli add mp wechatMp
npm install
小程序端启动命令是:
npm run start:mp
运行后用微信开发者工具打开 wechatMp/dist。如果页面依赖数据库、aspect、endpoint、watcher 或第三方接口,需要另开终端运行:
npm run server:start
当前模板不再提供 start:mp:server。小程序端和后端是两个独立进程。
4. App 开发
新应用先添加 React Native workspace:
oak-cli add rn native
npm install
React Native 端先启动 Metro:
npm run start:native:native
再按目标平台安装运行:
npm run run:android:native
npm run run:ios:native
生产构建使用:
npm run build:native:native:android
npm run build:native:native:ios
旧文档里的无 workspace 后缀 run:android、run:ios 和 run:bundle 不是当前模板命令。原生 SDK、签名和渠道包仍由 React Native、Android Studio 与 Xcode 工程管理。
5. Desktop 开发
Tauri:
oak-cli add desktop desktop
npm install
npm run start:desktop:desktop
Electron:
oak-cli add desktop desktop-electron --runtime electron
npm install
npm run start:desktop:desktop-electron
Desktop 复用 Web 平台运行时,但通过 Tauri/Electron renderer metadata 区分应用。它仍需真实 Oak 后端;通常另开终端运行 npm run server:start。详细结构见多平台工作区。
6. 后端开发
后端运行命令是:
npm run server:start
首次接入真实数据库前,先准备数据库配置并执行:
npm run build
npm run server:init
server:start 会启动真正的 Oak 后端运行态,包括 trigger、checker、aspect、endpoint、port、watcher、timer 和 routines/start。
7. 清理缓存
如果 Vite、Babel 或依赖缓存导致页面表现异常,可以先执行:
npm run clean:cache
它只清理本地构建缓存,不替代 make:domain、project:init 或 make:dep。