Vue-Cli 项目中 vue-socketio.js 在 IE 浏览器下报 SCRIPT1003: 缺少 ‘:’,vue-charts 缺少 ’)’
今天用 ie 打开了我们的 Vue 项目,结果一片空白
于是赶紧打开 F12 一探究竟
9440 行,是啥呢,点过去瞅瞅
好吧,去 main.js
里把 vue-socket.io 注释掉
错误信息变成了缺少')'
经排查,是 vue-charts 导致的这条报错
那么,vue-socket.io 和 vue-charts 就是罪魁祸首了。
重点来了
一般来说这种错误都是 ES6 的兼容性问题,比如
fun(){}
fun = () => {}
解决办法如下:
//vue.config.js 中添加
transpileDependencies: [
'vue-socket.io',
'vue-echarts',
'resize-detector',
],
//babel.config.js(注意双括号)module.exports = {
presets: [[
'@vue/app',
{useBuiltIns:'entry'}
]]
}
重新编译,解决!
附:官方文档
transpileDependencies
Type: Array<string | RegExp>
Default: []
默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。
关于 useBuiltIns 请参考此篇文章
按需加载 polyfill——babel7 的正确打开方式