@coze-arch/cli
v0.0.5
Published
coze coding devtools cli
Keywords
Readme
@coze-coding/cli
Coze Coding 的项目模板引擎,提供基于前端技术栈的项目初始化能力。
特性
- 🚀 快速初始化: 一键创建预配置的项目模板
- 🤖 AI 优先设计: 专为 AI Agent 消费设计,提供清晰的错误信息和自描述能力
- 📦 多模板支持: 支持 React、Next.js、HTML 等多种技术栈
- 🔧 类型安全: 基于 JSON Schema 的参数校验和 TypeScript 类型生成
- ⚡ 命令代理: 统一的 dev/build/start 命令,抹平不同技术栈差异
安装
rush update
使用
初始化项目
coze-coding init --template react --app-name my-app --use-typescript --use-tailwind查看可用模板
coze-coding init --help开发命令
# 启动开发服务器
coze-coding dev
# 构建生产版本
coze-coding build
# 启动生产服务器
coze-coding start模板参数
每个模板都有自己的参数配置,通过 CLI 参数透传。参数名使用 kebab-case 格式,会自动转换为 camelCase 传入模板配置。
例如:
--app-name→appName--use-typescript→useTypeScript--port→port
开发模板
模板结构
template-name/
├── template.config.ts # 模板配置(开发时)
├── template.config.js # 模板配置(生产时)
├── .coze # 项目配置文件
└── src/ # 源代码(支持 EJS 模板)参数定义
使用 JSON Schema 定义模板参数:
import type { JSONSchemaType } from 'ajv';
export interface TemplateParams {
appName: string;
useTypeScript: boolean;
port: number;
}
export const paramsSchema: JSONSchemaType<TemplateParams> = {
type: 'object',
properties: {
appName: {
type: 'string',
minLength: 1,
pattern: '^[a-z0-9-]+$',
cliParam: '--app-name',
description: 'Application name'
},
useTypeScript: {
type: 'boolean',
default: true,
cliParam: '--use-typescript',
description: 'Enable TypeScript'
},
port: {
type: 'number',
default: 3000,
minimum: 1024,
maximum: 65535,
cliParam: '--port',
description: 'Development server port'
}
},
required: ['appName'],
additionalProperties: false
};生命周期钩子
export const onBeforeRender = (context) => {
// 渲染前处理
return context;
};
export const onAfterRender = (context, outputPath) => {
// 渲染后处理
};编码规范
本项目严格遵循函数式编程风格:
- ✅ 使用纯函数和不可变数据
- ✅ 函数组合和高阶函数
- ✅ 使用工厂函数和闭包
- ❌ 禁止使用 class
- ❌ 避免副作用和可变状态
详见 技术设计文档
文档
许可证
内部项目
