Vue CLI3不兼容IE11打开空白报错SCRIPT1003: 缺少 ‘:‘

简介: Vue CLI3不兼容IE11打开空白报错SCRIPT1003: 缺少 ‘:‘

一、问题描述

Vue CLI3打包上线后的代码使用IE11打开后是空白的,控制台报错:

SCRIPT1003: 缺少 ':'
app.js (304501,83045)

其他浏览器打开没问题,问题定位在:存在不兼容IE的代码

1.png

二、问题分析

首先要知道,IE不支持函数简写

data(){

return {}
}

只能识别这种形式

 data: function () {
return {}
}

还有其他的不兼容之处,最笨的办法是手动修改所有不兼容的地方

当然还有更优的解

看下配置文件package.json中设置的兼容浏览器配置

"browserslist": [
"> 1%",
"last 2 versions"
]

查询一下配置所代表的的浏览器, 可以发现IE10IE11都在其列,

所以,项目本身的代码应该是没问题的

https://browserl.ist/

image.png

点击控制台报错的地方app.js,发现是一个模块不支持IE导致的

3.png

三、问题处理

最简单的方式是将不兼容的第三方模块换掉,如果确实需要那此法不可行

另外一个方式是使用@babel/polyfill + babel.config.js配置

1、安装依赖

cnpm i @babel/polyfill -S

2、入口文件 main.js 引入依赖

import '@babel/polyfill';

3、修改 babel.config.js

module.exports = {
presets: [
[
'@vue/app',
{
useBuiltIns: 'entry'
}
]
],
};

4、修改 vue.config.js


默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。


依赖较多,索性将所有的依赖都加上,不过会增加打包后的体积,比如我的项目从7.5M增加到了19.6M



module.exports = {
transpileDependencies: process.env.NODE_ENV === "development" ? ["*"] : [],
}

另外,如果是babel-polyfill + webpack.config.js网上很多文章都是说这个的,可以参看:

https://github.com/PanJiaChen/vue-element-admin/wiki


参考

  1. Vue CLI浏览器兼容性
  2. Vue CLI 3 配置兼容IE10
  3. vue cli3 创建的项目在IE11中运行,出现白屏,通过console调试发现报错SCRIPT1003: 缺少 ':'文件: app.js,行: 7391,列: 3 #4131



            </div>
目录
相关文章
|
9月前
vue-cli 如何让Eslint 报错在浏览器控制台输出
vue-cli 如何让Eslint 报错在浏览器控制台输出
180 0
|
9月前
VUE.初始化项目报错缺少core-js
VUE.初始化项目报错缺少core-js
139 0
|
4月前
|
JavaScript 前端开发
|
6月前
|
资源调度 JavaScript 前端开发
安装 Nuxt.js 的步骤和注意事项
【8月更文挑战第6天】
108 3
|
7月前
|
JavaScript 前端开发
【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑
【vue】 Tinymce 数据 回显问题 | 第一次正常回显后面,显示空白bug不能编辑
793 0
|
编译器
wepy踩坑-未发现相关 sass 编译器配置,请检查wepy.config.js文件
wepy踩坑-未发现相关 sass 编译器配置,请检查wepy.config.js文件
161 0
|
JavaScript 前端开发
Vue关闭语法检查
Vue关闭语法检查
323 0
|
JavaScript
Vue.js常见错误处理包含代码
@[TOC](目录) 以下是 Vue.js 中常见的错误,以及相应的处理方法和代码示例: 1. 语法错误 错误信息:`Error: [vm] &quot;name&quot; is not defined` 解决方法:确保组件的 data 中定义了相同的属性。 示例代码: ```html &lt;template&gt; &lt;div&gt; &lt;p&gt;{{ name }}&lt;/p&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default { data() { return { name: &#39;Hello&#39;, }; }, };
199 0
|
JavaScript
vue.js实战案例(3):vue启动项目报错npm ERR! missing script: serve的解决方法
vue.js实战案例(3):vue启动项目报错npm ERR! missing script: serve的解决方法
715 0
|
JavaScript 前端开发
node.js入门学习(1): 让phpstorm配置支持ES语法,箭头函数正常代码格式化
node.js入门学习(1): 让phpstorm配置支持ES语法,箭头函数正常代码格式化
144 0

热门文章

最新文章