uni-app skyline在发行正式版时 worklet全部不存在

uni-app skyline在发行正式版时 worklet全部不存在

项目属性
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 13.6
HBuilderX类型 正式
HBuilderX版本号 3.99
第三方开发者工具版本号 1.06.2401020
基础库版本号 3.3.2
项目创建方式 HBuilderX

操作步骤:

shouldPanResponse() {  
    'worklet'  
    return this.$vm._canPan.value  
},

预期结果:

shouldPanResponse() {  
    'worklet'  
    return this.$vm._canPan.value  
},

实际结果:

shouldPanResponse() {  
    return this.$vm._canPan.value  
},

bug描述:

skyline在【发行】正式版,worklet全部不存在了,【运行】时一切正常


更多关于uni-app skyline在发行正式版时 worklet全部不存在的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

换terser来minify {
minify: ‘terser’,
terserOptions: {
compress: {
directives: false,
},
},
}

更多关于uni-app skyline在发行正式版时 worklet全部不存在的实战教程也可以访问 https://www.itying.com/category-93-b0.html


有可复现的示例项目吗?

在使用 uni-app 的 Skyline 引擎时,如果你在发行正式版时发现 worklet 全部不存在,可能是由于以下几个原因导致的。以下是一些可能的解决方案和排查步骤:


1. 检查构建配置

  • 确保在 manifest.jsonvue.config.js 中,Skyline 相关的配置正确启用。
  • 检查是否开启了 minify(代码压缩)或 tree-shaking(摇树优化),这些优化可能会移除 worklet 相关的代码。
    • 如果是,可以尝试关闭这些优化,或者配置白名单,确保 worklet 相关代码不被移除。

2. 确认 worklet 的引入方式

  • 确保 worklet 的引入方式正确。例如,使用 importrequire 动态引入 worklet 文件。
  • 如果 worklet 是内联的,确保代码没有被构建工具误删。

3. 检查 Skyline 的兼容性

  • Skyline 是 uni-app 的新引擎,可能存在一些兼容性问题。确保你使用的 uni-app 版本支持 worklet
  • 如果问题仍然存在,可以尝试升级 uni-app 到最新版本,或者查看官方文档是否有相关更新。

4. 调试正式版代码

  • 在正式版构建完成后,检查生成的代码文件,确认 worklet 是否被正确打包。
  • 如果 worklet 代码丢失,可以尝试在构建过程中添加调试日志,定位问题。

5. 联系官方支持

  • 如果以上方法都无法解决问题,可以联系 uni-app 官方团队,提供详细的复现步骤和代码,寻求技术支持。

示例代码

以下是一个简单的 worklet 引入示例,确保代码正确:

// 引入 worklet
const workletCode = `
  registerPaint('my-worklet', class {
    paint(ctx, size, properties) {
      // 绘制逻辑
    }
  });
`;

// 动态加载 worklet
CSS.paintWorklet.addModule(`data:text/javascript,${encodeURIComponent(workletCode)}`);
回到顶部