乐趣区

VueCli项目中vuesocketiojs在IE浏览器下报SCRIPT1003-缺少

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 的正确打开方式

退出移动版