@lark-apaas/coding-template-nestjs-react-fullstack
v0.1.50
Published
NestJS + React fullstack template for miaoda coding
Readme
@lark-apaas/coding-template-nestjs-react-fullstack
妙搭 (Miaoda) NestJS + React 全栈应用模板。archType: 3(application scene)。
用法
通过 miaoda app init 渲染:
MIAODA_APP_TYPE=3 npx @lark-apaas/miaoda-cli@<latest> app init \
--template nestjs-react-fullstack \
--app-id app_xxx本地开发(npm run dev:local)
依赖 SDK 自带的 dotenv 加载(@lark-apaas/fullstack-{vite-preset,nestjs-core} ≥ 对应 alpha 版本)。在新生成的应用目录里:
- 填
.env.local(从_env.local模板渲染而来,注释里写了每个 env 的获取方式) npm run dev:local
关键 env:
MIAODA_LOCAL_DEV=1—— 由scripts/dev-local.sh自动 exportFORCE_AUTHN_PREVIEW_SESSION_ID—— 后端下发的 session id(替代浏览器手抠 cookie)SUDA_WEBUSER—— webuser JSONSANDBOX_PUBLIC_URL—— 沙箱公网域CLIENT_BASE_PATH=/app/<app_id>/—— React Router basename + Vite base
MCP UI 的类型与代码检查
创建 MCP UI 时,Agent 在 server/mcp/ui 中同时生成 tsconfig.json 和 eslint.config.cjs,修改 UI 或其 shared 依赖后主动运行独立检查。模板和 CLI 不生成 UI 配置,也不将 UI 检查接入主工程 lint/type:check。
主工程保留原 client/server 检查。Agent 从工程根执行 npx --no-install tsc --noEmit --project server/mcp/ui/tsconfig.json,再执行 npx --no-install eslint --config server/mcp/ui/eslint.config.cjs "server/mcp/ui/**/*.{ts,tsx,js,jsx}" --max-warnings 0;必须检查退出码并修复错误。无需辅助脚本或新增 npm 命令。
CLI 不注入 MCP UI 检查命令;主工程保留原有 client/server 检查,UI 由 Agent 按独立配置执行标准 tsc/eslint。
存量 sync 不改写 ESLint 源码;UI 全局排除项由平台 ESLint 预设提供。TS 仅向已有显式 exclude 数组追加目录,保留注释和原项;依赖继承且未显式声明 exclude 的自定义配置保持不变并提示人工调整。自定义检查命令保留。UI ESLint 配置可显式引用 fullstack-presets/lib/mcp/eslint-ui。
包结构
.
├── package.json ← 本模板包的发包元数据
├── hooks/ ← miaoda-cli 在 init 阶段调用的 hook(v0.1 全 no-op)
└── template/ ← 渲染到用户应用目录的内容template/ 内以下划线开头的占位文件(_gitignore / _npmrc / _env.local)在 miaoda app init
渲染时会按 RENAME 映射改回正常名(npm pack 会特殊处理 .gitignore、且 .npmrc 直接放
在包里会污染用户 npm install 行为,所以都要 underscore 前缀)。
MCP 版本与 UI 检查
模板不生成 mcp-build-id,构建脚本沿用原流程。SDK 发布态使用 veFaaS 函数 ID 与发布 revision;开发态使用后端编译产物指纹,UI/Skill 内容继续独立计入修订。首次升级切换版本来源后,Host 应重新发现。
MCP UI 的 tsconfig.json 和 eslint.config.cjs 由 Agent 随 UI 在 server/mcp/ui 中创建,执行命令与完整示例见 coding-steering 的 mcp-ui-guide。主工程的 TS/ESLint 排除该浏览器目录,不自动运行 UI 检查;不为无 UI 的应用创建配置或检查命令。
server/mcp/ui 与 server/mcp/skills 变更应由平台判为后端发布;纯前端发布不替换已部署 MCP 产物,也不承诺热更 MCP UI。发布版本号仅在实际后端发布时更新。
