只有先修改原子定义文件(schema.ts 或 schema.json),再重新执行代码生成,字段名、字段类型以及校验逻辑的变更才能被持久化保存;位于可编辑区标记(@atoms-editable-start/end)中的代码不会在重新生成时被覆盖。

在 Atoms 工具完成代码生成后,如果还需要对字段名称、数据类型或校验规则进行二次调整,直接修改生成文件通常会在下次生成时被覆盖。正确做法是先修改原子定义文件,再重新生成代码,这样才能确保修改长期生效,同时保持整体结构和生成逻辑的一致性。
确认当前原子定义位置
打开 Atoms 项目根目录 → 进入 atoms/ 文件夹 → 找到对应业务模块子目录(如 user/)→ 定位到 schema.ts 或 model.ts 文件。该文件是字段定义的唯一来源,所有自动生成代码都会以这里的配置为准。
如果没有找到 schema.ts,请检查当前项目是否采用了 JSON Schema 模式:此时应查找同名目录下的 schema.json,它同样是生成字段定义和校验规则的重要依据。
修改字段名称与类型
方法一:在 schema.ts 中直接修改 interface 字段声明
将 userName: string; 改为 full_name: string;,并注意同步更新 JSDoc 注释中的中文说明,例如把“用户姓名”调整为“用户全名”。【字段名修改后,必须同时更新所有 related 字段中的 ref 引用,否则代码生成时会直接报错】
方法二:调整字段类型并补充基础校验规则
把 age: number; 改为 age: number & { __valid: 'age' };,并在同一行下方添加 JSDoc 标注:/** @min 0 @max 150 */。Atoms 会识别该注释,并自动生成对应的 zod.min(0).max(150) 校验逻辑。
为字段添加自定义校验规则
第一步:在字段声明上方添加多行 JSDoc 注释
```ts
/**
* 用户邮箱必须为公司域名
* @pattern ^[\w.-]+@example\.com$
*/
email: string;
```
第二步:确认该字段所在的 interface 已启用 zod 插件支持——查看 schema.ts 顶部是否存在import { z } from 'zod';,并且导出语句为export const UserSchema = z.object({ ... });。如果没有,需要手动补充完整,否则 pattern 规则将无法被正确解析。
第三步:保存文件后,在终端执行 npx atoms generate 重新生成代码。生成后的 DTO 和 validator 文件中,email 字段会自动带上对应的正则校验逻辑。
替换已生成代码中的临时字段占位符
Atoms 默认会在生成代码中标记可安全修改的区域,格式类似 // @atoms-editable-start userStatus。你需要找到该标记,然后修改其下方的字段赋值语句,而结束标记 // @atoms-editable-end 必须保持不变。这样一来,这部分可编辑区代码在下次重新生成时也不会被覆盖。
如果原字段已经删除,但生成代码中仍然保留旧的引用,必须先在 schema.ts 中彻底移除该字段定义,再重新执行生成命令,否则这些残留引用很可能导致编译报错或构建失败。
