您当前的位置:主页 > 技术探讨 >
- 华为浏览器 11%
- UC浏览器 88%
- QQ浏览器 88%
- 微信内置浏览器 90%
- 钉钉内置浏览器 26%
vue:手机浏览器不支持 ES6 语法兼容处理
时间:2020-06-05 10:00 日记人:arlen.zhou
一.真机测试时,发现在华为手机自带浏览器中,某些点击事件失效,经逐行排查,发现是 es6 的问题。
经过此网站 http://ruanyf.github.io/es-checker/index.cn.html 检测后,得出手机端不同浏览器对es6的支持:
华为浏览器真的坑!如果某 js 文件中使用了 es6 语法,整体需要降级。项目直接导入babel-polyfill
使用方式:
npm install --save-dev babel-polyfill
npm install es6-promise
1.require("babel-polyfill");
2.import "babel-polyfill";
3.module.exports = {
entry: ["babel-polyfill", "./app/js"]
};
单独页面处理:
// 引入babel-polyfill文件 , 处理所有es6语法,使用es5语法
<script src="https://cdn.bootcss.com/babel-polyfill/6.23.0/polyfill.min.js"></script>
二.最近在用vue做项目,项目在安卓4,5,ios9页面显示空白,问题解决跟大家分享一下
安卓4,5,ios9页面空白原因:低版本不支持es6,需要将es6编译成es5
具体解决方法
1.npm install --save-dev babel-preset-es2015(安装ES2015转码规则)
2.npm install --save-dev babel-polyfill
3.npm install es6-promise
4.main.js 中引用
import Es6Promise from 'es6-promise'
Es6Promise.polyfill()
import 'babel-polyfill'
5.修改.babelrc文件
{
"presets": ["es2015" , "stage-2"
],
"plugins": ["transform-vue-jsx", "transform-runtime"]
}
6.webpack.base.conf.js 中修改
对VUX进行转ES5
{
test: /vux.src.*?js$/,
loader: 'babel-loader',
query: {
presets: ['es2015']
},
},
对自定义脚本进行转ES5
{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['es2015']
},
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
}
希望能帮到大家: 愿有岁月可回首,且以深情共白头
上一篇:vue分环境打包 cross-env
下一篇:eslint配置规则规范和提示