360兼容模式下报错:[vuex] vuex requires a Promise polyfill in this browser.

原因:

360浏览器中包含了两个浏览器
一个是IE(Trident内核),即兼容模式,在使用网银时需要切换为兼容模式
一个是Chrome(Chrommium内核),即极速模式,普通浏览时使用

  • Chrome51 版起便可以支持 97% 的 ES6 新特性。
  • Firefox53 版起便可以支持 97% 的 ES6 新特性。
  • Safari10 版起便可以支持 99% 的 ES6 新特性。
  • IEEdge 15可以支持 96% 的 ES6 新特性。Edge 14 可以支持 93% 的 ES6 新特性。(IE7~11 基本不支持 ES6

babel-polyfill

babel-polyfill  是针对全局环境的,引入它浏览器就好像具备了规范里定义的完整的特性,一旦引入,就会跑一个  babel-polyfill  实例。用法如下:
1.安装 babel-polyfill
npm install babel-polyfill --save
2.在入口文件中引用:
import 'babel-polyfill'
针对ES6的兼容性问题,很多团队为此开发出了多种语法解析转换工具,把我们写的ES6语法转换成ES5,相当于在ES6和浏览器之间做了一个翻译官。比较通用的工具方案有babel,jsx,traceur,es6-shim等。


法一:webpack.base.conf.js中配置
entry: {
app: [ "babel-polyfill", "./src/main.js"],
}

entry: {
app: "./src/main.js",
"babel-polyfill" : "babel-polyfill"
}


法二:在main.js中引入
import ' babel-polyfill'

但上述方法都未生效!

本人亲测下列两种方法可行:
法一:webpack.base.conf.js中配置
entry: {
    // "babel-polyfill"用来解决的兼容性
    app: ['./node_modules/babel-polyfill/dist/polyfill.js','./src/main.js']
}
法二:
直接引入:
Logo

前往低代码交流专区

更多推荐