Skip to content

CLI

mokup 提供 buildserve 两个命令。

Build

生成供服务端适配器与 Worker 使用的 .mokup 构建产物。

使用场景:

  • 为 Worker 或服务端运行时生成 bundle。
  • 在 CI/CD 中预构建 mock 产物。

示例:

bash
pnpm exec mokup build --dir mock --out .mokup
bash
npm exec mokup build --dir mock --out .mokup
bash
yarn mokup build --dir mock --out .mokup
bash
bunx mokup build --dir mock --out .mokup

Build 选项

参数说明
--dir, -dmock 目录(可重复)
--out, -o输出目录(默认 .mokup
--prefix路由前缀
--include仅包含匹配的正则(可重复)
--exclude排除匹配的正则(可重复)
--ignore-prefix忽略路径段前缀(可重复)
--no-handlers不生成函数处理器

Serve

从目录直接启动独立的 mock 服务。

使用场景:

  • 不依赖前端应用,快速起一个 mock API 服务。
  • 用于本地联调或接口测试。

示例:

bash
pnpm exec mokup serve --dir mock --prefix /api --port 3000
bash
npm exec mokup serve --dir mock --prefix /api --port 3000
bash
yarn mokup serve --dir mock --prefix /api --port 3000
bash
bunx mokup serve --dir mock --prefix /api --port 3000

Serve 选项

参数说明
--dir, -dmock 目录(可重复)
--prefix路由前缀
--include仅包含匹配的正则(可重复)
--exclude排除匹配的正则(可重复)
--ignore-prefix忽略路径段前缀(可重复)
--host主机名(默认 localhost
--port端口(默认 8080
--no-watch关闭文件监听
--no-playground关闭 Playground
--no-log关闭日志输出

API

如果更喜欢编程式用法,可直接调用 buildManifest

使用场景:

  • 在 Node 脚本或构建管线中生成 manifest。
  • 集成到自定义工具链。

示例:

ts
import { buildManifest } from 'mokup/cli'

await buildManifest({
  dir: 'mock',
  outDir: '.mokup',
})

Bundle helper(跨平台)

生成 bundle 模块源码字符串,不依赖文件系统:

使用场景:

  • 在无文件系统的环境中生成 bundle 源码。
  • 自定义模块 import 路径输出。

示例:

ts
import type { RouteTable } from 'mokup/bundle'
import { buildBundleModule } from 'mokup/bundle'

const routes: RouteTable = []
const source = buildBundleModule({
  routes,
  root: '/project',
  resolveModulePath: file => `/virtual/${file}`,
})

routes 的结构与 scanRoutes(来自 mokup/vite)的返回值一致。若不在 Vite 环境内构建,请用 resolveModulePath 控制输出的 import 路径。

说明

  • --dir 可多次传入,但会在同一份 manifest 中合并。
  • 生成的 mokup.bundle.mjs 适合在 Worker 或 Node 运行时直接导入。
  • mokup serve 与内置服务直启行为一致。