Skip to content

快速开始

1) 安装

sh
dotnet tool install -g coders

安装/使用说明

初始化工作区

运行 coders init 生成默认配置和示例 .jssp 文件集合。

  • 没有 -f|--force 时,如已存在 config.yml 会停止。
  • -v|--verbose 将控制台日志扩展到信息级别。
  • --force 会用新模板覆盖已有文件。

生成的 config.yml 默认值如下:

yaml
llmOptions:
  # 使用的 LLM 供应商
  provider: "ollama"
  # 构建时使用的模型名
  model: "gpt-oss-safeguard:20b"
  # LLM 端点与认证信息
  url: "http://localhost:11434"
  apiKey: "OLLAMA_API_KEY"
  timeoutSeconds: 300
  stream: true
entry: main.jssp
projects: []

根节点的 llmOptions 负责 LLM 调用所需的供应商、模型、端点、认证、超时与流式设置。projects 定义平台输出,可用 coders platform add 添加后再编辑。

平台管理

  • coders platform list [-v]: 输出已注册的平台键与默认的目标/语言信息。
  • coders platform add <platform> [-v]: 将指定平台的默认项目配置添加到 config.yml。生成的条目/输出路径和选项可按需编辑。
  • coders platform remove <platform> [-v]: 预留子命令。

源码构建

coders build <platform> [-v] 解析 .jssp 并生成指定平台的代码。

  • platform 必须与 config.ymlprojects 中声明的平台键一致。
  • 缺少 config.yml 会中断构建,缺少入口文件会报错。
  • 输出目录不存在时会自动创建。

提示抽取

coders extract <target> <platform> [-o|--output <path>] [-v] 抽取提示等资源。

  • target 为抽取目标(例如 prompt),platform 为平台键。
  • 可用 --output 更改输出目录,不指定则使用当前位置。

典型流程

sh
coders init
coders platform add <platform>
coders build <platform> -v

初始化后,将所需平台加入配置,并用同一键执行构建。

2) 初始化工作区

sh
coders init

生成的基础文件:

  • config.yml
  • main.jssp

3) 添加平台

sh
coders platform add springboot
coders platform add reactjs
coders platform add mysql

config.yml 中会新增 projects 条目。

4) 编写 DSL

main.jssp 中编写 Coders DSL。

js
domain Email string(320);

table user {
  user_id int64 auto;
  email Email unique;
  key(user_id);
}

5) 构建

sh
coders build springboot

输出会写入 config.ymloutPath

平台构建示例

sh
coders build springboot
coders build reactjs
coders build mysql

各平台会根据 projects 设置生成到不同的输出目录。

单次执行构建多个平台

重复执行平台键,或用脚本批量执行。

sh
coders build springboot
coders build reactjs
coders build mysql

当前 CLI 没有多平台批量构建选项,因此需要顺序执行。

6) 提示抽取 (可选)

sh
coders extract prompt springboot

适合用于检查平台特定的转换规则。

检查清单

  • config.ymlprojects 中是否已注册平台?
  • entry 文件是否存在?
  • LLM 设置 (llmOptions) 是否正确?

常见错误

  • 运行 coders build 时遗漏平台键
  • entrymain.jssp 不一致但未更新
  • LLM 供应商/模型名与实际服务不匹配