自动化与脚本
配置微信小程序 Skyline 渲染时,正确设置…
适用于创建新 Skyline 小程序、从 WebView 迁移、配置混合渲染或排查 Skyline 配置编译错误时。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
配置微信小程序 Skyline 渲染时,特定
解决思路
- 在 app.json 中配置三项必需项:`renderer` 设为 `skyline`,`componentFramework` 设为 `glass-easel`,`lazyCodeLoading` 设为 `requiredComponents`,三项缺一不可。
- 在每个页面的 JSON 中配置 `navigationStyle` 为 `custom`,即使页面不需要导航栏也必须声明,否则会报 `getAppConfig error`,提示页面 `navigationStyle` 应设为 `custom`。
- 使用 `scroll-view` 替代页面级滚动时,在页面 JSON 中配置 `disableScroll` 为 `true`,避免页面滚动与 `scroll-view` 冲突。
- 在 app.json 的 `rendererOptions.skyline` 中配置 `defaultDisplayBlock` 为 `true` 和 `defaultContentBox` 为 `true`,以对齐 WebView 的 `block` 与 `content-box` 默认行为。
- 在 app.json 的 `rendererOptions.skyline` 中配置 `tagNameStyleIsolation` 为 `legacy`,使标签选择器全局匹配以对齐 WebView。
- 在 app.json 的 `rendererOptions.skyline` 中配置 `enableScrollViewAutoSize` 为 `true`,让 `scroll-view` 自动撑开高度。
- 在 app.json 的 `rendererOptions.skyline` 中配置 `disableABTest` 为 `true`,关闭 Skyline AB 实验以确保稳定性。
- 新建 Skyline 项目时,使用三项必需配置,并将 `rendererOptions` 全部设为推荐值:`defaultDisplayBlock` 为 `true`、`defaultContentBox` 为 `true`、`tagNameStyleIsolation` 为 `legacy`、`enableScrollViewAutoSize` 为 `true`、`disableABTest` 为 `true`。
- 从 WebView 迁移到 Skyline 时,使用三项必需配置,并配置 `rendererOptions` 兼容项:`defaultDisplayBlock` 为 `true`、`defaultContentBox` 为 `true`、`tagNameStyleIsolation` 为 `legacy`,同时设置 `disableABTest` 为 `true`。
- 配置混合渲染时,在 app.json 中不设置全局 `renderer`,在需要 Skyline 的页面 JSON 中单独设置 `renderer` 为 `skyline`。
- 仅部分页面使用 Skyline 时,在对应页面 JSON 中设置 `renderer` 为 `skyline` 以覆盖全局配置。
- 在 project.config.json 的 `setting` 中配置 `skylineRenderEnable`,用于控制开发者工具的 Skyline 调试。
- 不要遗漏任何页面的 `navigationStyle` 为 `custom` 配置;Skyline 不支持原生导航栏,必须使用自定义导航栏。
- 不要在 Skyline 页面中依赖页面级全局滚动;Skyline 不支持页面级滚动,必须使用 `scroll-view` 组件管理滚动。
- 排查 Skyline 配置相关编译错误时,逐项核对 app.json 的 `renderer`、`componentFramework`、`lazyCodeLoading`,页面 JSON 的 `navigationStyle`、`disableScroll`,以及 `rendererOptions` 的推荐配置。
- 页面 JSON 可配置 `navigationStyle`、`disableScroll`、`renderer` 等页面级配置,用于覆盖或补充全局 Skyline 配置。
- 工具层在 project.config.json 中通过 `setting.skylineRenderEnable` 进行开发者工具调试开关配置。
适用边界 · 注意事项
- 未使用微信小程序 Skyline 渲染引擎的项目不需要应用这些配置。
- Skyline 页面不支持页面级全局滚动;若无法将滚动改由 `scroll-view` 管理,则不适合直接迁移到 Skyline。
- Skyline 不支持原生导航栏;若必须依赖原生导航栏,则不能启用 Skyline,除非改用自定义导航栏。