Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

更新到1.0.0-beta.11到1.0.0-beta.14某个版本后IOS10.2及以下打开白屏(无内容) #517

Closed
vimcaw opened this issue Aug 24, 2018 · 10 comments
Assignees

Comments

@vimcaw
Copy link
Contributor

vimcaw commented Aug 24, 2018

问题描述

是个小程序的项目,原来的一直好好的,在IOS10.2及以下测试也没问题。

但是升级到1.0.0-beta.14后(1.0.0-beta.11到1.0.0-beta.12存在问题无法测试),小程序出现问题,在IOS10.2及以下打开白屏,除了Tab栏什么都没有。

打开调试工具后发现是因为js报错阻止了后续代码的加载。

当在微信开发者工具中开启远程调试后,出现问题的设备可以正常运行。

主要的报错内容是:

TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode.

原因可能是Taro编译后的代码在开启了严格模式的文件中使用了caller, callee, 和arguments

但是为什么只在IOS10.2及以下会出现问题就不知道了。

复现步骤

可能没有稳定的复现步骤

以下是测试过的版本:

  • beta.16 报错
  • beta.14 报错
  • beta.13 编译后无法运行(wxss路径错误)
  • beta.12 无法编译(缺少npm包Part/index,开始安装...)
  • beta.11 无法编译(缺少npm包Part/index,开始安装...)
  • beta.10 可以正常运行

因为beta.11beta.13出现了一些问题,无法编译,所以无法确定到底是beta.11beta.14中间的哪一个版本出了问题。

期望行为

正常运行

报错信息

image

image

TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode.

系统信息

  • 操作系统: Windows 10
  • Taro 版本 v1.0.0-beta.14及以上
  • Node.js 版本 v8.11.2

补充信息

原因可能是Taro编译后的代码在开启了严格模式的文件中使用了caller, callee, 和arguments

但是为什么只在IOS10.2以下会出现问题就不知道了。

@vimcaw vimcaw changed the title 更新到1.0.0-beta.11到1.0.0-beta.14某个版本后IOS10.2以下打开白屏(无内容) 更新到1.0.0-beta.11到1.0.0-beta.14某个版本后IOS10.2及以下打开白屏(无内容) Aug 24, 2018
@luckyadam
Copy link
Member

beta.11 版本会出现编译失败的情况?

@vimcaw
Copy link
Contributor Author

vimcaw commented Aug 25, 2018

@luckyadam 是这样的,相关处结构为:

├─pages
│  ├─index
│  │  │  index.js
│  │  │  index.scss
│  │  │
│  │  └─Part
│  │          index.js
│  │          index.scss

index.js里用import Part from './Part'导入了Part组件,结果在beta.11beta.12中编译时一直重复提示缺少npm包Part/index,开始安装...,在beta.13时解决。

应该是编译时把'./Part'解析成了Part/index`,Taro误认为是个 npm 包,就一直自动安装,失败后无限重试。

能不能给自动安装缺失依赖加一个配置选项进行开关?

@luckyadam
Copy link
Member

@vimcaw 现在最新版本已经解决这个问题了~
然后我看了下 taro 自己的库,编译后是有使用 arguments,但这个在严格模式下是可以使用的,所以这一条报错有没有可能是你的项目引用的其他库导致的?

TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode.

@vimcaw
Copy link
Contributor Author

vimcaw commented Aug 25, 2018

@luckyadam 但是我那个项目除了classnames以外没有使用任何第三方库了,这个classnames是很早就引入了,那时候是没有这个问题的,是在更新到beta.11至beta.14的某一个版本后出的问题。

@luckyadam
Copy link
Member

@vimcaw 嗯嗯~ 我再看看那段时间的提交记录,如果没有头绪就只能暂时去掉 use strict

@luckyadam luckyadam self-assigned this Aug 27, 2018
@luckyadam
Copy link
Member

@vimcaw daab0d4 这个提交应该能解决

@luckyadam
Copy link
Member

可以升级到 1.0.0-beta.19 试试

@vimcaw
Copy link
Contributor Author

vimcaw commented Aug 28, 2018

@luckyadam 经过测试已经正常了 👍 感谢大佬不辞万苦为我们修 BUG

@zhangzhusheng
Copy link

请问,iOS10版本白屏的问题应该es6兼容导致的吧,有合理的解决方案吗,我是用taro-vue3搭建的小程序混合开发

@zhangzhusheng
Copy link

@luckyadam 请问,iOS10版本白屏的问题应该es6兼容导致的吧,有合理的解决方案吗,我是用taro-vue3搭建的小程序混合开发

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants