vue-cli創(chuàng)建項(xiàng)目到引用iview導(dǎo)致的ie11不兼容問題解決方案

前言

在實(shí)際工作過程中,用到了Vue和iView。但是遇到了在ie11中不兼容的問題,經(jīng)過網(wǎng)上多方的查詢,終于收集了一套完整的解決方案,下面將它分享出來。

正文

解決ie不支持es6語法問題

在使用vue-cli搭建Vue的當(dāng)頁面項(xiàng)目時,會自動幫你安裝包babel相關(guān)的組件。babel的作用是將ES6+的語法轉(zhuǎn)換為ES5的語法,這樣就能保證被瀏覽器兼容(沒錯,說的就是IE11)。
但是這還遠(yuǎn)遠(yuǎn)不夠,因?yàn)樵谀銓?shí)際寫代碼的時候,除了會用到ES6+的相關(guān)語法之外(比如let,const),還會用到一些ES6+新出的API(比如Promise,()=>{}箭頭函數(shù)),而這些單單靠babel是無法解決的。這個時候就需要使用babel-polyfill來解決這些問題。

  • 安裝babel-polyfill
npm install babel-polyfill --save
  • 在webpack.config.js中引入
entry: {
  app: ["babel-polyfill", "./src/main.js"]
},

解決iView引入時的問題

注:這里是按需引用遇到的問題,全部引用目前沒有這個問題

  • 先根據(jù)官網(wǎng)要求的進(jìn)行安裝配置
npm install babel-plugin-import --save-dev
// .babelrc
{
  "plugins": [["import", {
    "libraryName": "iview",
    "libraryDirectory": "src/components"
  }]]
}
  • 然后修改webpack.base.config.js配置文件
//這里的意思是遇到路徑為文件名為iview.src.xxxxjs的都用babel轉(zhuǎn)換為ES5的支持的語法
{
  test: /iview.src.*?js$/,
  loader: 'babel-loader'
}

其他1

在實(shí)際項(xiàng)目中也用到過iview-admin這個第三方開源的后臺管理系統(tǒng),也遇到了ie11兼容的問題。下面是解決方法:
首先還是向上面一樣安裝babel-polyfill,然而發(fā)現(xiàn)還是在一直報(bào)錯。后來不斷排查發(fā)現(xiàn)是webpack-dev-server版本的問題。經(jīng)過測試,發(fā)現(xiàn)就webpack-dev-server@2.10.1的版本不行,其他版本好像都可以(我試了2.7.1和2.11.3)。
如果你也遇到這樣類似的問題,換個webpack-dev-server版本試試。

npm install --save-dev webpack-dev-server@2.11.3

其他2

那么想要在單個HTML(非vue-cli生成的項(xiàng)目)中如何實(shí)現(xiàn)支持ES6+語法?簡單,只要添加如下代碼即可:

<script src=’./brower.min.js’>
<script type=”text/babel”>
  //包含ES6+語法的邏輯代碼
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容