Просмотр исходного кода

fix(frontend): pages.json 修复 diet 分包错位导致的 JSON 语法错误(HBuilderX 编译失败→白板)

- 421d1c42 饮食模块把 pages/diet 分包插在 tabBar 之后、subPackages 数组之外,
  导致 pages.json 语法错误,HBuilderX 编译失败、小程序全部白板
- 将 diet 块移回 subPackages 数组内(正确缩进)
- cfc-frontend/AGENTS.md: 写入打包规范(HBuilderX 打包 → unpackage/,禁止 npm build 自行打包)
asus 2 месяцев назад
Родитель
Сommit
1f386b3b82
2 измененных файлов с 61 добавлено и 50 удалено
  1. 14 3
      cfc-frontend/AGENTS.md
  2. 47 47
      cfc-frontend/pages.json

+ 14 - 3
cfc-frontend/AGENTS.md

@@ -110,6 +110,17 @@ pages.json 中定义 5 个 TabBar 页面(TabBar 文案,非五维维度名)
 
 ## BUILD SYSTEM
 
+### 打包方式(强制规范)
+
+**小程序打包必须用 HBuilderX 完成,Agent 禁止自行执行 `npm run build:mp-weixin` 等打包命令。**
+
+- 打包工具:HBuilderX(导入 `cfc-frontend/` 目录 → 运行 → 运行到小程序模拟器 → 微信开发者工具)
+- 打包产物:**`cfc-frontend/unpackage/`** 目录(HBuilderX 输出位置,dev 产物在 `unpackage/dist/dev/mp-weixin/`)
+- 微信开发者工具导入的目录是 `unpackage/dist/dev/mp-weixin/`(或 HBuilderX 自动打开),**不是** `dist/`
+- `dist/` 目录是 npm CLI 打包的残留产物,**不可用**——`app.js` 仅有 89 字节(require 三行),非完整产物
+- Agent 修改代码后:只做**语法/结构校验**(如 `node --check` 提取的 script 块),**不打包、不运行 build 命令**
+- 页面白板排查第一步:确认用户是否在 HBuilderX 中**重新打包**过(改代码后未重新打包 → 产物过期 → 白板)
+
 ### 依赖约束(2026-07-23 修复后锁定)
 
 | 包 | 版本 | 原因 |
@@ -156,8 +167,7 @@ node postinstall-fix.js
 
 ```bash
 npm install             # 安装依赖(自动运行 postinstall-fix.js)
-npm run dev:mp-weixin   # 开发模式 (微信小程序)
-npm run build:mp-weixin # 构建生产版本(仅生成 dist,不在 DevTools 里编译)
+# 注意:打包一律用 HBuilderX(产物在 unpackage/),Agent 不要执行 npm run build:mp-weixin
 ```
 
 ## NOTES
@@ -166,4 +176,5 @@ npm run build:mp-weixin # 构建生产版本(仅生成 dist,不在 DevTools
 - 后端API地址: 配置在 `config/index.js` 的 `baseUrl`
 - 地址数据: 使用后端街道API获取四级地址数据
 - 调试工具: 微信开发者工具需配置合法域名
-- **不要在 WeChat DevTools 里直接编译源码**,先 `npm run build:mp-weixin` 生成 `dist/dev/mp-weixin/`,然后在 DevTools 中导入该目录
+- **打包流程(HBuilderX)**:HBuilderX 打开 `cfc-frontend/` → 运行到微信开发者工具 → 产物输出至 `unpackage/dist/dev/mp-weixin/`。改代码后必须在 HBuilderX 中重新运行打包,否则小程序显示旧产物(甚至白板)
+- **禁止**在终端执行 `npm run build:mp-weixin` 或 `npm run dev:mp-weixin` 自行打包(产物进 `dist/` 而非 `unpackage/`,与 HBuilderX 工作流冲突)

+ 47 - 47
cfc-frontend/pages.json

@@ -1424,6 +1424,53 @@
           }
         }
       ]
+    },
+    {
+      "root": "pages/diet",
+      "pages": [
+        {
+          "path": "index",
+          "style": {
+            "navigationBarTitleText": "饮食"
+          }
+        },
+        {
+          "path": "preferences",
+          "style": {
+            "navigationBarTitleText": "饮食偏好调研"
+          }
+        },
+        {
+          "path": "food-query",
+          "style": {
+            "navigationBarTitleText": "食材查询"
+          }
+        },
+        {
+          "path": "meal-config",
+          "style": {
+            "navigationBarTitleText": "共餐配置"
+          }
+        },
+        {
+          "path": "recommendation",
+          "style": {
+            "navigationBarTitleText": "食谱推荐"
+          }
+        },
+        {
+          "path": "records",
+          "style": {
+            "navigationBarTitleText": "饮食记录"
+          }
+        },
+        {
+          "path": "record-detail",
+          "style": {
+            "navigationBarTitleText": "记录详情"
+          }
+        }
+      ]
     }
   ],
   "globalStyle": {
@@ -1465,53 +1512,6 @@
       }
     ]
   },
-  {
-    "root": "pages/diet",
-    "pages": [
-      {
-        "path": "index",
-        "style": {
-          "navigationBarTitleText": "饮食"
-        }
-      },
-      {
-        "path": "preferences",
-        "style": {
-          "navigationBarTitleText": "饮食偏好调研"
-        }
-      },
-      {
-        "path": "food-query",
-        "style": {
-          "navigationBarTitleText": "食材查询"
-        }
-      },
-      {
-        "path": "meal-config",
-        "style": {
-          "navigationBarTitleText": "共餐配置"
-        }
-      },
-      {
-        "path": "recommendation",
-        "style": {
-          "navigationBarTitleText": "食谱推荐"
-        }
-      },
-      {
-        "path": "records",
-        "style": {
-          "navigationBarTitleText": "饮食记录"
-        }
-      },
-      {
-        "path": "record-detail",
-        "style": {
-          "navigationBarTitleText": "记录详情"
-        }
-      }
-    ]
-  },
   "easycom": {
     "auto": "components/@dcloudio/uni-$2/components/uni-$1/uni-$1.vue",
     "pages": {