国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

VUE 項(xiàng)目在IE11白屏報(bào)錯(cuò) SCRIPT1002: 語(yǔ)法錯(cuò)誤的解決

瀏覽:175日期:2022-11-18 08:19:19

問(wèn)題現(xiàn)象

項(xiàng)目使用vue/cli3腳手架搭建的前端項(xiàng)目,vue版本為2.6.10。

browserslist的配置如下:

[ '> 1%', 'last 2 versions']

但開(kāi)發(fā)環(huán)境的IE11打開(kāi)顯示白屏,F(xiàn)12打開(kāi)顯示:

VUE 項(xiàng)目在IE11白屏報(bào)錯(cuò) SCRIPT1002: 語(yǔ)法錯(cuò)誤的解決

分析過(guò)程

5306行顯示 './node_modules/_debug@4.1.1@debug/src/browser.js'這個(gè)路徑報(bào)錯(cuò),由于eval()包含的代碼中有ES6的語(yǔ)法,IE不支持,查了網(wǎng)上很多資料都說(shuō)使用babel-polyfill來(lái)解決。

現(xiàn)象一:IE不支持ES6語(yǔ)法

Vuex requires a Promise polyfill in this browser '“Promise”未定義'

以上現(xiàn)象為IE不支持Promise,即不支持ES6語(yǔ)法。出現(xiàn)IE白屏和報(bào)SCRIPT1002錯(cuò)誤的大都是此原因。當(dāng)前處理起來(lái)也比較簡(jiǎn)單,網(wǎng)上大部份資源都可以找到解決方案,就是使用babel-polyfill。

首先安裝babel-polyfill

npm install --save-dev babel-polyfill

然后在babel.config.js修改presets,內(nèi)容如下:

// presets: [['@vue/app', {useBuiltIns: 'entry',}]],// 此為vue/cli3presets: [['@vue/cli-plugin-babel/preset', {useBuiltIns: 'entry',}]],// 此為vue/cli4

解決方法一

main.js的第一行引入:

import ’babel-polyfill’;

解決方法二:vue cli官方推薦使用,前提是package.json安裝了core-js:

import ’core-js/stable’;import ’regenerator-runtime/runtime’;

解決方法三:在vue.config.js里添加如下代碼:

configureWebpack: config => { config.entry.app = ['babel-polyfill', './src/main.js']; },

現(xiàn)象二:第三方插件引入導(dǎo)致

由于項(xiàng)目使用了長(zhǎng)連接庫(kù)socket.io-client和vue-socket.io-extended,在main.js是中使用方法是:

import VueSocketIOExt from ’vue-socket.io-extended’;import io from ’socket.io-client’;const socket = io(process.env.VUE_APP_IO_URL);Vue.use(VueSocketIOExt, socket);

我把這四行代碼注釋掉之后神奇的IE不白屏了,但業(yè)務(wù)需要IE11是不能放棄長(zhǎng)連接的,經(jīng)過(guò)嘗試發(fā)現(xiàn)是socket.io-client這個(gè)插件在使用import引入時(shí)導(dǎo)致的問(wèn)題。

解決方法一:

1、將main.js調(diào)整為:

import VueSocketIOExt from ’vue-socket.io-extended’;const socket = io(process.env.VUE_APP_IO_URL);Vue.use(VueSocketIOExt, socket);

2、socket.io-client改為在public/index.html文件head中引入:

<script src='https://cdn.bootcdn.net/ajax/libs/socket.io/2.3.0/socket.io.slim.js'></script>

解決方法二:

保留main.js對(duì)第三方插件的引入不變,只需要在vue.config.js的transpileDependencies添加要顯示依賴(lài)的插件即可:

transpileDependencies:[’socket.io-client’],// transpileDependencies:[’*’],

transpileDependencies的作用是:默認(rèn)情況下 babel-loader 會(huì)忽略所有 node_modules 中的文件。如果你想要通過(guò) Babel 顯式轉(zhuǎn)譯一個(gè)依賴(lài),可以在這個(gè)選項(xiàng)中列出來(lái)。

現(xiàn)象三:本地環(huán)境正常,但生產(chǎn)環(huán)境仍舊白屏

發(fā)現(xiàn)引入一個(gè)多語(yǔ)言文件時(shí),JSON沒(méi)有使用合適的逗號(hào)導(dǎo)致,如下:

VUE 項(xiàng)目在IE11白屏報(bào)錯(cuò) SCRIPT1002: 語(yǔ)法錯(cuò)誤的解決

當(dāng)我我第8行的逗號(hào)去掉后,奇跡般正常了。另外,如果前端工程引入的文件不在工程的根目錄下,也會(huì)出現(xiàn)這種情況。

到此這篇關(guān)于VUE 項(xiàng)目在IE11白屏報(bào)錯(cuò) SCRIPT1002: 語(yǔ)法錯(cuò)誤的解決的文章就介紹到這了,更多相關(guān)VUE IE11白屏報(bào)錯(cuò)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 西城区| 吉隆县| 普兰店市| 锡林郭勒盟| 依兰县| 长岭县| 景泰县| 故城县| 大悟县| 临颍县| 保德县| 嘉荫县| 永川市| 晋中市| 四子王旗| 许昌县| 郁南县| 尼玛县| 开平市| 河池市| 宁陵县| 临清市| 肥东县| 建德市| 德州市| 勃利县| 祁阳县| 竹山县| 民勤县| 阜新| 邵阳县| 桐城市| 方城县| 双峰县| 壤塘县| 天津市| 财经| 阿鲁科尔沁旗| 高要市| 五台县| 峨山|