create-react-app ios8系统中页面空白/样式错乱问题

1. 空白问题

因为缺少polyfill

在public/index.html 中引入如下js

<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-sham.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-shim.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-sham.min.js"></script>

-----以上方案可行

备注:安装 npm install '@babel/polyfill' 并 import '@babel/polyfill' 会在import行中提示 无法找到'@types/babel__polyfill'的声明文件(并未找到解决方案)

2. 样式错乱问题

package.json文件中 browserslist 表示兼容到浏览器什么版本

npx browserslist 可以查看项目支持的浏览器版本信息

ios8系统的 safari版本是ios8

修改如下

"browserslist": [

"since 2014"

]

可以支持到 2014年的所有浏览器

为了支持 safari 8

修改如下,增加"safari >= 8",只对safari做特殊处理

"browserslist": [

">0.2%",

"not dead",

"safari >= 8",

"not ie <= 9",

"not op_mini all"

]

不能写 "not safari < 8"

因为其他条件的限制,只允许兼容到 safari 10.1

safari 12

safari 11.1

safari 10.1

----------------------------

https://www.jianshu.com/p/bd9cb7861b85 browserslist 目标浏览器配置表