Files

67 lines
4.1 KiB
Markdown
Raw Permalink Normal View History

---
name: g3fo-nacos-config
description: 分析并修改 g3fo-db/当前工作区下 nacos_config 目录中的配置。若当前项目没有 nacos_config 则提示用户打开 g3fo-db 或提供 g3fo-db 路径。支持添加、修改 yml 配置及添加配置注释;需引导用户确认「场」与「单个配置文件」;当添加/修改位置不确定时必须先与用户确认再执行;在合适位置、正确缩进下编辑。
---
# nacos_config 分析与修改
## 目录结构
- **根路径**:当前工作区根目录下的 `nacos_config`;若不存在则要求用户打开 g3fo-db 或提供 g3fo-db 的明确路径。
- **场(site)**:`nacos_config/{site_name}/`,每个子目录为一个场(如 afe_ap、dev_200、uat_226、vn-demo 等)。场列表通过列出 `nacos_config` 子目录动态得到,不写死。
- **配置文件**:每场下多为 yml,常见有 `common.yml`、`dubbo.yml`、`mysql.yml`、`redis.yml`、`rocketmq.yml` 以及各服务 `g3fo-*-dev.yml` 等。
## 用户交互流程(必须按顺序执行)
### 0. 确认 nacos_config 所在位置
- 先检查**当前工作区根目录**下是否存在 `nacos_config`。
- **若不存在**:提示「当前项目下未找到 `nacos_config` 目录」,引导用户二选一:
- 请先**打开 g3fo-db 项目**再操作,或
- **提供 g3fo-db 项目的明确路径**(后续操作基于该路径下的 `nacos_config`)。
- 在用户完成其一之前**不执行任何配置编辑**。
- 若存在或用户已提供路径,继续下一步。
### 1. 确定要修改的场
- 若用户**未明确**要改哪个场:反问用户,并**列出**(当前工作区或用户提供的 g3fo-db 路径下的)`nacos_config` 下所有子目录(即所有场),引导用户选择**一个或多个场**,或选择「**全部场**」。
- 若用户已明确指定场,则直接使用。
### 2. 确定要修改的配置文件
- 若用户**未指定**配置文件,或指定了**多个**:**引导用户确认仅一个**配置文件(如 `common.yml`、`dubbo.yml` 等)。
- 若用户已明确指定一个配置文件,则直接使用。
### 3. 确定添加/修改位置(必须遵守)
- **当不确定**要把新配置加在哪个位置、或要改哪一处时:**必须先与用户确认**(列出可选位置或给出建议,等用户选定),**再执行**编辑;不得在位置模糊时自行猜测并修改。
### 4. 执行修改
在选定的每个「场」下,对选定的配置文件进行编辑:
- **添加**:根据要添加的 key 路径(如 `dubbo.application.metadata-service-port`)在文件中找合适位置——若已有同名顶级块(如 `dubbo`)则合并到该块下并保持 2 空格缩进;若无则新增顶级块,放在与现有顶级键风格一致的位置。位置不明确时先与用户确认再执行。
- **修改**:若 key 已存在,则只改值并保持原有缩进与注释风格;若存在多处或歧义,先与用户确认再执行。
- **添加配置的注释**:在指定 key 上方或行尾添加注释,风格与文件内现有注释一致;位置不明确时先与用户确认再执行。
**YAML 规则**:一律 **2 空格缩进**;新加块与现有同级键对齐;不破坏现有注释与键顺序。若文件中已有 `dubbo` 块,新 dubbo 相关项应合并到该块下,避免重复顶级 `dubbo`。插入新顶级块时的常见顺序可参考 [references/yml-placement.md](references/yml-placement.md)。
## 示例
**在 common.yml 中添加 dubbo 配置**
若 `common.yml` 中尚无顶级 `dubbo`,可新增顶级块(与 `server`、`spring` 等同级),例如:
```yaml
dubbo:
application:
metadata-service-port: 28101
```
若 `common.yml` 或目标文件中已有 `dubbo:` 块,则将 `metadata-service-port` 合并到 `dubbo.application` 下,保持 2 空格缩进,不新增重复的 `dubbo:` 顶级键。
## 约定摘要
- **路径**:优先用当前工作区的 `nacos_config`;没有则要求用户打开 g3fo-db 或提供 g3fo-db 路径。
- **确认优先**:添加/修改/注释的**目标位置**一旦不确定,必须先与用户确认再执行,不得自行猜测。