Vue使用babel-polyfill兼容IE解決白屏及語法報錯問題
使用babel-polyfill兼容IE解決白屏及語法報錯
vue elementUI項目使用webpack打包上線后,服務(wù)器環(huán)境下IE報語法錯誤及白屏
在最近的項目中,在使用webpack打包后發(fā)布,有用戶反饋使用IE瀏覽器訪問會白屏,這就不能忍受了,經(jīng)過排查發(fā)現(xiàn),發(fā)生這個錯誤應(yīng)該是有文件沒有由ES6轉(zhuǎn)ES5語法造成,而IE不兼容該語法
既然問題找到了,那解決起來應(yīng)該就容易了,然后事實上并沒有我想的那么簡單,話不多說,直接開始。
首先,通用的方式就是,項目中引入babel-polyfill,安裝方法可以自行百度
在這里我直接上命令:
npm i --save babel-polyfill (或者使用如果安裝有cnpm就用cnpm)
第一步:引入babel-polyfill
引入babel-polyfill的方式無非有以下幾種
1.在main.js的頂部直接使用 import ‘babel-polyfill’
2.在vue.config.js中,直接在chainWebpack內(nèi)添加以下代碼,只需要引入一處即可
chainWebpack: config => { config.entry('main').add('babel-polyfill') config.entry.app = ['babel-polyfill', './src/main.js'] }
第二步:在babel.config.js中設(shè)置entry
module.exports = { presets: [['@vue/app', { 'useBuiltIns': 'entry', polyfills: ['es6.promise', 'es6.symbol'] }]]
第三步:如果除了項目還引入了其他插件而該插件內(nèi)部也存在ES6寫法
則需要將這些插件的ES6轉(zhuǎn)換成ES5
使用transpileDependencies直接將需要轉(zhuǎn)換的插件放入
transpileDependencies: ['element-ui', 'echarts', 'highcharts', 'highcharts-3d', 'screenfull', 'oidc-client', 'vuex-oidc']
VUE CLI官方文檔中對transpileDependencies的解釋是,默認情況下 babel-loader 會忽略所有 node_modules 中的文件。
如果你想要通過 Babel 顯式轉(zhuǎn)譯一個依賴,可以在這個選項中列出來,他接受字符串或者正則表達式
https://cli.vuejs.org/zh/config/#transpiledependencies
如果引入的包比較多,可以根據(jù)package.json中引入包慢慢調(diào)試,直到將所有存在ES6語法的插件全部換成ES5
在開發(fā)的過程中遇到過一個問題,就是,如果使用cnpm安裝依賴,有可能會導(dǎo)致transpiledependencies無效
具體原因還沒有去深究,不過我的做法是,直接將node_modules全部刪掉后,重新使用npm i安裝所有依賴后,再次重新打包,目前問題已解決~
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue Element UI + OSS實現(xiàn)上傳文件功能
這篇文章主要為大家詳細介紹了Vue Element UI + OSS實現(xiàn)上傳文件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07vue分片上傳視頻并轉(zhuǎn)換為m3u8文件播放的實現(xiàn)示例
前端上傳大文件、視頻的時候會出現(xiàn)超時、過大、很慢等情況,為了解決這一問題,跟后端配合做了一個切片的功能,本文主要介紹了vue分片上傳視頻并轉(zhuǎn)換為m3u8文件播放的實現(xiàn)示例,感興趣的可以了解一下2023-11-11vue3使用Element-plus的el-pagination分頁組件時無法顯示中文
本文主要介紹了vue3使用Element-plus的el-pagination分頁組件時無法顯示中文,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12