VUE 項(xiàng)目在IE11白屏報(bào)錯(cuò) SCRIPT1002: 語法錯(cuò)誤的解決
問題現(xiàn)象
項(xiàng)目使用vue/cli3腳手架搭建的前端項(xiàng)目,vue版本為2.6.10。
browserslist的配置如下:
[ "> 1%", "last 2 versions"]
但開發(fā)環(huán)境的IE11打開顯示白屏,F(xiàn)12打開顯示:
分析過程
5306行顯示 "./node_modules/_debug@4.1.1@debug/src/browser.js"這個(gè)路徑報(bào)錯(cuò),由于eval()包含的代碼中有ES6的語法,IE不支持,查了網(wǎng)上很多資料都說使用babel-polyfill來解決。
現(xiàn)象一:IE不支持ES6語法
- Vuex requires a Promise polyfill in this browser
- "“Promise”未定義"
以上現(xiàn)象為IE不支持Promise,即不支持ES6語法。出現(xiàn)IE白屏和報(bào)SCRIPT1002錯(cuò)誤的大都是此原因。當(dāng)前處理起來也比較簡(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/cli3 presets: [["@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)過嘗試發(fā)現(xiàn)是socket.io-client這個(gè)插件在使用import引入時(shí)導(dǎo)致的問題。
解決方法一:
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添加要顯示依賴的插件即可:
transpileDependencies:['socket.io-client'], // transpileDependencies:['*'],
transpileDependencies的作用是:默認(rèn)情況下 babel-loader 會(huì)忽略所有 node_modules 中的文件。如果你想要通過 Babel 顯式轉(zhuǎn)譯一個(gè)依賴,可以在這個(gè)選項(xiàng)中列出來。
現(xiàn)象三:本地環(huán)境正常,但生產(chǎn)環(huán)境仍舊白屏
發(fā)現(xiàn)引入一個(gè)多語言文件時(shí),JSON沒有使用合適的逗號(hào)導(dǎo)致,如下:
當(dāng)我我第8行的逗號(hào)去掉后,奇跡般正常了。
另外,如果前端工程引入的文件不在工程的根目錄下,也會(huì)出現(xiàn)這種情況。
到此這篇關(guān)于VUE 項(xiàng)目在IE11白屏報(bào)錯(cuò) SCRIPT1002: 語法錯(cuò)誤的解決的文章就介紹到這了,更多相關(guān)VUE IE11白屏報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue項(xiàng)目啟動(dòng)白屏問題的幾種解決辦法
這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目啟動(dòng)白屏問題的幾種解決辦法,Vue項(xiàng)目打包后出現(xiàn)白屏的可能原因有很多,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12從零開始用webpack構(gòu)建一個(gè)vue3.0項(xiàng)目工程的實(shí)現(xiàn)
這篇文章主要介紹了從零開始用webpack構(gòu)建一個(gè)vue3.0項(xiàng)目工程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Vue3中使用defineCustomElement 定義組件詳解
這篇文章主要為大家介紹了Vue3中使用defineCustomElement 定義組件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10vite2打包的時(shí)候vendor-xxx.js文件過大的解決方法
vite2是一個(gè)非常好用的工具,只是隨著代碼的增多,打包的時(shí)候?vendor-xxxxxx.js?文件也越來越大,本文主要介紹了vite2打包的時(shí)候vendor-xxx.js文件過大的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03vue3封裝AES(CryptoJS)前端加密解密通信代碼實(shí)現(xiàn)
防止數(shù)據(jù)被爬取,前后端傳參接收參數(shù)需要加密處理,使用AES加密,這篇文章主要給大家介紹了關(guān)于vue3封裝AES(CryptoJS)前端加密解密通信代碼實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-12-12Nuxt如何實(shí)現(xiàn)將服務(wù)測(cè)數(shù)據(jù)存儲(chǔ)到Vuex中
這篇文章主要介紹了Nuxt如何實(shí)現(xiàn)將服務(wù)測(cè)數(shù)據(jù)存儲(chǔ)到Vuex中的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10vuex + axios 做登錄驗(yàn)證 并且保存登錄狀態(tài)的實(shí)例
今天小編就為大家分享一篇vuex + axios 做登錄驗(yàn)證 并且保存登錄狀態(tài)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09