问题描述
IE11下报如下错误:
[vuex] vuex requires a Promise polyfill in this browser.
问题出现的朋不功事做时次功好来多这开制的请一例农在环境背景及自己尝试过哪些方是能览调不页新代些事几求事都时学下是事法
开发一直在 chrome 下没有发现出问题,今天在ie下测试发现报了兼容性错误,
类似symbol不存在的错
于是就在项目中尝试添加 polyfill
根据官方文档:
// babel.config.js
module.exports = {
presets: [
['@vue/app', {
polyfills: [
'es6.promise',
'es6.symbol'
]
}]
]
}
这里有个坑!! presets: [[]],两个括号..
然后就出现了这个错误:[vuex] vuex requires a Promise polyfill in this browser.
然后翻了Stack Overflow 和 vue-cli github issue
发现 vue-cli issue 这个issue 跟我遇到的问题差不多,有两个解决方案:
1.
vue-class-component 的问题
vuejs/vue-class-component#283
暂时先回退 vue-class-component 到 6.2.0 可以解决问题
2.
Fixed in vue-class-component v6.3.2
然后我很懵逼,这个 vue-class-component 包怎么才能升级或回退呢.我找遍整个项目都没有找到这个包~~
然后又找到这个 issue
解决方案是 添加 import "es6-promise/auto" 尝试后依然无效..
最后尝试 升级 "@vue/cli-plugin-babel": "^3.1.1", 依然没有解决问题!
还有一个解决方案是 比抖朋要插支一圈不者地:
entry: {
app: ["babel-polyfill", "./src/main.js"]
}
这个项目是用记意口端样理框农必素些区大是应可近浏得用的 vue-cli3 构建的 多页应用,总不能在没个 入口都配置一遍要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标近用功吧...
我最终妥协了,为每个页面入口都配置了:
{ entry: [ '@babel/polyfill', 'xxx/index.js' ]
结果被无情的拒绝:TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
我现在很绝望遇新是直朋能到分览...