Open hsingyin opened 4 years ago
近期发现原先写法得变一下。不然有时候会提示重复引入了babel-polyfill
解决方案是原先main.js
中的对babel-polyfill
的引入去掉,更新build/webpack.base.conf.js
写法。
// main.js
// import 'babel-polyfill';
import Es6Promise from 'es6-promise';
require('es6-promise').polyfill();
Es6Promise.polyfill()
// build/webpack.base.conf.js
entry: {
// app: ["babel-polyfill", "./src/main.js"]
"babel-polyfill": "babel-polyfill",
app: './src/main.js'
},
背景
在低版本的
Android
或者iOS
设备下,H5会出现白屏的现象,打开控制台发现报错了许多错误。(这里针对vue-cli2.X
项目)原因
原因是
Android 6.0
和iOS 10
以下对ES6
新语法不兼容,现在低版本的系统在市场上仍有一部分占比,虽然不想兼容但是莫得办法解决方案
1. 引入
babel-polyfill
babel-polyfill
、es6-promise
main.js
中引用babel-polyfill
、es6-promise
2. 配置项目的
.babelrc
文件3. 检查依赖、静态资源
js
是否用了高级语法(因为babel
会忽略node_modules
,导致依赖包中的ES6
语法无法被转换)vant
、sm-crypto
依赖包有高级语法需要转换向后兼容,配置build/webpack.base.conf.js
static/js/serviceConfig.js
(因为不会被编译)里面的一些变量使用的模板字符串要改成通常的写法,let
、const
也得换成var