红糖云服-小程序

常见问题(FAQ)

常见问题(FAQ)

本页汇总 app-templateweb-templategame-template@htyf-mp/js-sdk 的高频问题,按“先判断、再处理”的方式整理,便于快速排障。


1) 我该选哪个模板?

Q:三种模板分别适合什么场景?

  • app-template:React Native 小程序,适合需要导航、Tab、原生容器能力的应用型项目。
  • web-template:Taro + React 页面型项目,适合快速做业务页面和 H5 逻辑。
  • game-template:Godot 游戏项目,适合玩法、物理、场景驱动型内容。

Q:我只想尽快跑通一次流程,选哪个?

优先选 web-template,改动成本最低、反馈最快。


2) 初始化与安装

Q:为什么初始化失败或覆盖了旧项目?

你可能没有在空目录执行。初始化前请确保:

  • 当前目录为空,或至少不包含已有项目文件。
  • 不在已有 app.json 的项目根重复初始化。

Q:npm install / yarn 用哪个?

两者都可以,但同一项目建议固定一种,避免锁文件冲突。
若模板 README 写的是 yarn,优先按 README 执行。

Q:依赖安装后运行报模块缺失(ENOENT)怎么办?

优先做这三步:

  1. 删除 node_modules 与锁文件后重新安装;
  2. 保证 Node 版本满足文档要求(建议 Node >= 16.20.0);
  3. 安装过程若有 peer 冲突,按实际错误使用对应参数重装。

3) 打包与真机调试

Q:npm run htyf 提示找不到配置或项目不合法?

通常是目录不对。请确认当前目录是“项目根”:

  • app.json
  • app.json 内有 htyf 配置

Q:扫码后打不开 / 白屏 / 资源不更新?

按顺序排查:

  1. 手机与电脑是否在同一局域网(或端口转发已正确配置);
  2. 是否刚构建完成后再扫码;
  3. app.jsonappUrlConfigzipUrl 是否可访问;
  4. 版本号是否已更新(避免缓存旧包)。

Q:如何区分“本地开发问题”还是“容器调试问题”?

建议流程:

  • 先在本地开发环境跑通(RN/Taro/Godot 各自工具链);
  • 再进入 npm run htyf 真机调试;
  • 若本地正常、真机异常,优先检查网络、配置地址和容器能力调用。

4) app.json 配置

Q:appUrlConfigzipUrl 有什么区别?

  • appUrlConfig:配置/元数据入口(版本、描述、资源地址等)。
  • zipUrl:实际资源包下载地址。

可记成:前者管“读配置”,后者管“拉代码包”。

Q:web-template 里的 webUrl 是做什么的?

webUrl 是 WebView 加载入口地址,决定打开哪个网页。
Web 项目常见是 webUrl + appUrlConfig + zipUrl 配合使用。


5) JS SDK 使用

Q:为什么 jssdk 在浏览器里调用不生效?

很多 API 依赖宿主容器,浏览器环境下不可用。建议先判断:

const inHostApp = !!jssdk.client;

不在容器时走降级逻辑(如 Web 弹窗、Web 剪贴板)。

Q:最常用的 SDK API 是哪些?

  • 交互:showToastshowModal
  • 扫码:openQR
  • 布局:getMenuButtonBoundingClientRectgetSafeAreaInsets
  • 剪贴板:setClipboardStringgetClipboardString
  • 文件:downloadAndSaveFile

Q:参数类型去哪里查?

直接看:

  • node_modules/@htyf-mp/js-sdk/dist/types/SDK.d.ts
  • node_modules/@htyf-mp/js-sdk/dist/types/types/options.d.ts

6) 文档与 MDX 报错

Q:为什么会出现 YAML frontmatter 解析错误?

常见原因:

  • description 等字段里包含特殊字符但没加引号;
  • key: value 写法缺少空格或拼写错误;
  • frontmatter 头尾 --- 不完整。

建议:frontmatter 的字符串统一加双引号,尤其包含 @:、中文标点时。

Q:改完文档后页面没更新?

  • 确认 dev server 仍在运行;
  • 手动刷新页面一次;
  • 如缓存异常,重启 npm run dev 再访问。

7) 还没解决怎么办?

请带上这三类信息再排查,效率会高很多:

  1. 当前模板类型(app-template / web-template / game-template);
  2. 具体命令与报错原文(完整复制);
  3. 当前目录关键文件(app.json、入口文件、相关配置片段)。

相关文档

On this page