# 10.6 配置与覆盖策略 :::tip 概述 生成器配置集中在 `config.yaml` 的 generator 节:总开关、菜单挂载位置、覆盖策略。三者共同决定"生成什么、挂在哪、是否覆盖手写"。 ::: ## 配置项 ```yaml generator: enable: true # 总开关:false 时生成器路由整体不注册 parentMenuId: 189 # 新模块菜单挂载的父级菜单 ID overwrite: true # 覆盖策略:true 全量覆盖;false 缺失补生成、存在跳过 ``` | 键 | 影响 | |---|---| | enable | false 时 Web 界面与生成接口不存在;生产必须 false(prod 模式强制校验) | | parentMenuId | 新菜单挂到哪个目录下(改前先在菜单管理确认目标 ID) | | overwrite | 决定已有文件的处置;对已手工调整的模块务必用 false | ## 覆盖策略详解 | 策略 | 行为 | 适用 | |---|---|---| | overwrite=false | 存在的文件跳过(Skipped),只补缺失 | 有手写内容的项目(默认安全档) | | overwrite=true | 后端四件套 + 前端产物全部覆盖 | 模板升级后同步产物、纯生成器维护的模块 | router.go 声明块与菜单行**始终幂等**:无论策略如何,重复生成不会产生重复声明/重复菜单。 ## 生产红线 `app.prod=true` 时启动校验拒绝 `generator.enable=true`——生成器能写服务器源码,生产必须关闭。部署清单核对项之一(见 [11.8 安全加固清单](/zh/deploy/security.html))。 ## 环境变量覆盖 ```text APP_GENERATOR_ENABLE=false APP_GENERATOR_PARENTMENUID=189 APP_GENERATOR_OVERWRITE=false ``` 生产用环境变量关掉生成器,配置文件保持开发默认即可。 ## 相关 - [2.3 配置文件与环境变量](/zh/quickstart/env-vars.html) - [10.8 常见问题](/zh/generator/faq.html)