VUE 項目在IE11白屏報錯 SCRIPT1002: 語法錯誤的解決
問題現(xiàn)象
項目使用vue/cli3腳手架搭建的前端項目,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'這個路徑報錯,由于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白屏和報SCRIPT1002錯誤的大都是此原因。當(dāng)前處理起來也比較簡單,網(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)致
由于項目使用了長連接庫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是不能放棄長連接的,經(jīng)過嘗試發(fā)現(xiàn)是socket.io-client這個插件在使用import引入時導(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對第三方插件的引入不變,只需要在vue.config.js的transpileDependencies添加要顯示依賴的插件即可:
transpileDependencies:[’socket.io-client’],// transpileDependencies:[’*’],
transpileDependencies的作用是:默認(rèn)情況下 babel-loader 會忽略所有 node_modules 中的文件。如果你想要通過 Babel 顯式轉(zhuǎn)譯一個依賴,可以在這個選項中列出來。
現(xiàn)象三:本地環(huán)境正常,但生產(chǎn)環(huán)境仍舊白屏
發(fā)現(xiàn)引入一個多語言文件時,JSON沒有使用合適的逗號導(dǎo)致,如下:
當(dāng)我我第8行的逗號去掉后,奇跡般正常了。另外,如果前端工程引入的文件不在工程的根目錄下,也會出現(xiàn)這種情況。
到此這篇關(guān)于VUE 項目在IE11白屏報錯 SCRIPT1002: 語法錯誤的解決的文章就介紹到這了,更多相關(guān)VUE IE11白屏報錯內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項目的過程2. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析3. SharePoint Server 2019新特性介紹4. ASP中常用的22個FSO文件操作函數(shù)整理5. 三個不常見的 HTML5 實用新特性簡介6. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp7. .Net core 的熱插拔機制的深入探索及卸載問題求救指南8. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁9. 讀大數(shù)據(jù)量的XML文件的讀取問題10. 解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯誤頁的問題
