更新时间:2024-08-26 14:02:51收藏订阅更新我的文档设置返回文档简介为了进一步优化小程序体验,支付宝在基础库 1.x 的基础上,升级迭代了基础库 2.x,相比于基础库 1.x,基础库 2.x 有以下特点:●启动性能、渲染性能、内存占用等方面均有大幅改善。●在自定义组件系统、sjs 脚本、插件接入、按需加载上提供了更丰富及完备的能力。●在开放能力上提供了更多基础组件、api。●在开发者工具上提供了更详细的调试面板、热更新能力。 基础库 2.x 完全兼容于基础库 1.x ,自 2020 年起已稳定运行至今,完整更新日志见 基础库 2.x 更新日志。升级步骤第一步:ide 配置下载 开发者工具(v2.5.3 beta 版或以上)最新版本,在 详情 > 项目配置中,勾选 启用小程序基础库 2.0 构建,ide 会在配置文件 mini.project.json 中把 enableappxng 字段设置为 true。也可以直接修改代码切换到基础库 2.x:1在小程序项目目录下,找到 mini.project.json 配置文件(若无则可以新建)。2在 mini.project.json 中,配置上 enableappxng: true 字段。第二步:调试配置完毕后,在 调试器 > 控制台,输入 my.sdkversion 回车,能够看到当前的基础库版本。 真机调试模式也可以在右侧设备信息查看基础库版本。 第三步:上传发布上传小程序版本后,可以先生成 体验版 进行基础库 2.x 预览验证,确认无误后提审并灰度上架。 如上架过程中出现问题,可以直接回滚至上一个未启用基础库 2.x 的版本。 常见问题如果在升级过程中遇到任何问题,可点击界面右侧 在线咨询 联系凯发app官方网站的技术支持。运行时请观察启用基础库 2.x 之后线上异常报错的变化趋势,建议使用 质量洞察 先行排查,如遇无法排查问题可点击界面右侧 在线咨询 联系凯发app官方网站的技术支持。编译基础库 2.x 的编译模式更为严格,以下是一些常见编译问题。q:提示“try set `compileoptions.transpile` in mini.project.json”,如何处理?a:一般情况下是由于项目代码或 node_modules 中存在 es6 以上语法导致。●参照 transpile 文档进行配置。●如果还未解决,准备好复现代码压缩包,联系支付宝凯发app官方网站的技术支持排查。q:提示“syntaxerror: identifier(foo) is disallowed in sjs”,如何处理?a:foo 变量未定义,可能是变量定义的写法不标准引起的,尝试在代码中报错的位置向上寻找变量定义的位置,检查一下语法。示例代码q:提示“no multiple condition”,如何处理?a:原因:同一个标签上 a:else , a:if 属性不能同时存在,需要根据实际的业务逻辑修改。详情可查看 条件渲染 。报错代码:修改后代码:q:错误信息:foo => foo 应该为 json 格式,如何处理?a:原因: axml 中不支持箭头函数,在老基础库中的变现为构建成功,但是箭头函数返回值永远为 false。解决:下面一类 case,可以将 axml 中的函数写到 sjs 中,详情可查看 sjs 介绍 。报错代码:修改后代码:q:error: app.json 中 tabbar.items[x].pagepath 未为字符串,如何处理?a:原因: app.json 中的 tabbar 配置不合法,表现为整个 tabbar 不显示。凯发app官方网站的解决方案: 删除 app.json 中的 tabbar 配置。q:提示“module error (from xxx): pages/foo/index.acss:2:3: unexpected }”,如何处理?a:原因:acss 语法不标准。凯发app官方网站的解决方案:报错代码:修改后代码:q:提示“error[parse]: slot 的祖先节点中未找到 element”,如何处理?a: 原因:不支持在非实体元素内声明 slot,常见于低版本(< 3.3.18) taro 框架编译的支付宝小程序。报错代码:合法代码:凯发app官方网站的解决方案:●如果您使用的是 taro 框架,将 taro 框架升级到 3.3.18 或以上可以解决该问题。●如果您使用的是原生 dsl,请将 slot 移动到实体元素内。