49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# 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)
|