2***@qq.com
2***@qq.com
  • 发布:2020-12-31 11:47
  • 更新:2021-01-01 11:32
  • 阅读:1397

【报Bug】uni-app编译的支付宝小程序源码报错

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS Catalina

HBuilderX类型: 正式

HBuilderX版本号: 2.7.14

第三方开发者工具版本号: 1.13.7

基础库版本号: 2.13.0

项目创建方式: HBuilderX

操作步骤:

使用HbuilderX,点击运行到支付宝小程序,打开支付宝小程序开发者工具,打开/unpackage/dist/dev/mp-alipay,编译报错

Error: ./pagesGoods/order-info/index.acss?hash=b0fb02412ac4a5f4d760234e8cab79aea08c907f  
Module build failed :  
TypeError: Cannot read property 'join' of undefined  
    at Array.forEach (<anonymous>)  
    at Array.forEach (<anonymous>)

但是运行到微信小程序和qq小程序正常,不明白为什么css文件会报js错误

预期结果:

正常显示小程序

实际结果:

编译报错

bug描述:

使用HbuilderX,点击运行到支付宝小程序,打开支付宝小程序开发者工具,打开/unpackage/dist/dev/mp-alipay,编译报错

Error: ./pagesGoods/order-info/index.acss?hash=b0fb02412ac4a5f4d760234e8cab79aea08c907f  
Module build failed :  
TypeError: Cannot read property 'join' of undefined  
    at Array.forEach (<anonymous>)  
    at Array.forEach (<anonymous>)

但是运行到微信小程序和qq小程序正常,不明白为什么css文件会报js错误

2020-12-31 11:47 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com (作者)

找到问题了,keyframes关键词后面的大括号内不能使用/**/注释,否则在支付宝小程序中会报错
例如:

@keyframes animationName {  /* 这是定义动画帧的关键 */  
  0%{  
      transform: scale(1);  
  }  
  25%{  
      transform: scale(1.4);   
  }  
  50%{  
      transform: scale(1);  
  }  
  75%{  
      transform: scale(1.4);  
  }  
}

编译到支付宝小程序:

@keyframes animationName-data-v-446f4bef {  
  /* 这是定义动画帧的关键 */  
  0% {  
      -webkit-transform: scale(1);  
              transform: scale(1);  
  }  
  25% {  
      -webkit-transform: scale(1.4);  
              transform: scale(1.4);  
  }  
  50% {  
      -webkit-transform: scale(1);  
              transform: scale(1);  
  }  
  75% {  
      -webkit-transform: scale(1.4);  
              transform: scale(1.4);  
  }  
}

我猜想是支付宝小程序把注释内容当作动画帧数去执行了,所以报错
而微信和QQ小程序不用担心这个问题

该问题目前已经被锁定, 无法添加新回复