@lark-apaas/coding-template-nestjs-react-fullstack 0.1.42-alpha.20260917135900 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -37
- package/package.json +1 -1
- package/template/package-lock.json +105 -747
- package/template/package.json +6 -7
- package/template/scripts/build.sh +43 -81
- package/template/scripts/lint.js +41 -188
- package/template/tsconfig.node.json +1 -2
- package/template/scripts/typecheck-mcp-ui.js +0 -32
- package/template/tsconfig.mcp-ui.json +0 -33
package/README.md
CHANGED
|
@@ -27,16 +27,6 @@ MIAODA_APP_TYPE=3 npx @lark-apaas/miaoda-cli@<latest> app init \
|
|
|
27
27
|
- `SANDBOX_PUBLIC_URL` —— 沙箱公网域
|
|
28
28
|
- `CLIENT_BASE_PATH=/app/<app_id>/` —— React Router basename + Vite base
|
|
29
29
|
|
|
30
|
-
## MCP UI 的类型与代码检查
|
|
31
|
-
|
|
32
|
-
MCP UI 使用平台预设提供的浏览器检查默认值。`npm run lint` 和 `npm run type:check` 自动覆盖 `server/mcp/ui`,模板统一提供 UI 子命令与类型配置;`lint -- --files` 保留按文件选择检查范围。没有 UI 源码时跳过 UI 检查。
|
|
33
|
-
|
|
34
|
-
应用增加 `type:check:mcp-ui` 子命令,与 `type:check:client`、`type:check:server` 一起由 `type:check` 聚合。`scripts/typecheck-mcp-ui.js` 只在 UI 源码存在时调用应用安装的 `tsc --noEmit --project tsconfig.mcp-ui.json`;无 UI 或目录为空时成功跳过。根目录 `tsconfig.mcp-ui.json` 提供浏览器、React JSX 和严格类型检查配置,可按应用需要修改;sync 仅在该文件不存在时创建。已有 `server/mcp/ui/tsconfig.json` 的应用优先沿用原配置,保留自定义 paths/types。
|
|
35
|
-
|
|
36
|
-
UI ESLint 默认配置由平台预设提供,也可用根目录 `eslint.mcp-ui.config.js` / `.cjs` / `.mjs` 定制。`npm run lint` 包含 UI 检查;`--files` 按影响范围检查,shared 变更触发三个环境的类型检查。应用脚本不使用 `node -e` 或 TypeScript 编译器 API。
|
|
37
|
-
|
|
38
|
-
存量 sync 不改写 ESLint 源码;UI 全局排除项由平台 ESLint 预设提供。TS 仅向已有显式 `exclude` 数组追加目录,保留注释和原项;依赖继承且未显式声明 `exclude` 的自定义配置保持不变并提示人工调整。自定义检查命令保留。请与包含这些入口的新版 fullstack-presets 一起升级,旧版预设没有上述入口。
|
|
39
|
-
|
|
40
30
|
## 包结构
|
|
41
31
|
|
|
42
32
|
```
|
|
@@ -49,30 +39,3 @@ UI ESLint 默认配置由平台预设提供,也可用根目录 `eslint.mcp-ui.
|
|
|
49
39
|
`template/` 内以下划线开头的占位文件(`_gitignore` / `_npmrc` / `_env.local`)在 `miaoda app init`
|
|
50
40
|
渲染时会按 RENAME 映射改回正常名(npm pack 会特殊处理 `.gitignore`、且 `.npmrc` 直接放
|
|
51
41
|
在包里会污染用户 `npm install` 行为,所以都要 underscore 前缀)。
|
|
52
|
-
|
|
53
|
-
## MCP 后端构建标识
|
|
54
|
-
|
|
55
|
-
`npm run build` 的 `scripts/build.sh` 在服务端、客户端构建、产物准备和依赖裁剪全部成功后,
|
|
56
|
-
用 Node 内置 `crypto.randomUUID()` 生成一次纯文本 UUID(36 字符,无需发布环境变量)。
|
|
57
|
-
同次构建写入下列文件,内容完全相同:
|
|
58
|
-
|
|
59
|
-
| 构建文件(相对工程根) | 对应运行目录 |
|
|
60
|
-
| --- | --- |
|
|
61
|
-
| `dist/mcp-build-id` | 工程根 |
|
|
62
|
-
| `dist/dist/mcp-build-id` | `dist/`,或整个 `dist/` 复制/解压到的 `dist-server/` |
|
|
63
|
-
| `dist/server/dist/mcp-build-id` | 旧布局 `dist/server/`,或该目录复制/解压到的 `dist-server/` |
|
|
64
|
-
|
|
65
|
-
SDK 统一读取 `cwd/dist/mcp-build-id`;production 首次读取后缓存。
|
|
66
|
-
复制/部署同一产物必须保留文件,不在启动时重新生成 UUID;再次成功全构建会得到新的 UUID。
|
|
67
|
-
直接运行 `build:server` 不完成交付流程,不能替代 `npm run build`。
|
|
68
|
-
SDK 在文件缺失时不返回 `appRevision`,标准 MCP 仍可用;开发态使用进程单例 UUID,不读构建文件。
|
|
69
|
-
UI/Skill 内容仍由 SDK 计入总 hash,独立修改这些产物不会重写 `backendBuildID`。
|
|
70
|
-
|
|
71
|
-
`only_frontend_change=true` 跳过服务端构建、依赖裁剪和 UUID 生成。
|
|
72
|
-
构建目录仍按原逻辑清空;平台跳过服务端包上传,所以已部署服务的旧 ID 保持不变。
|
|
73
|
-
`server/mcp/ui`、`server/mcp/skills` 的源码变更应由平台判为全构建;它们不属于 `client/`。
|
|
74
|
-
平台实际根据配置的前端路径前缀匹配变更前后路径,不能把 `server/mcp` 列为前端前缀。
|
|
75
|
-
即使 client build 在本地写出了 `mcp-ui`,纯前端发布也不携带服务端 MCP 产物,**不承诺热更 MCP UI**。
|
|
76
|
-
|
|
77
|
-
存量应用通过既有 `fullstack-cli sync` 或 `miaoda app sync` 的 `scripts/` 目录覆盖同步获得此脚本,
|
|
78
|
-
同步本身不生成 UUID、不修改已有构建标识,无新增用户 CLI 命令。
|