Vue兼容ie9+

首先說明一下我在這里使用的是vue-cli3創(chuàng)建的項目咐扭,不同版本的配置可能略有差異,不過一切以官方文檔的為準滑废,在這里先貼出vue-cli文檔鏈接蝗肪,因為文檔說明還是挺詳細的。https://cli.vuejs.org/zh/guide/browser-compatibility.html#browserslist

進入正題蠕趁,這里說明一下本文實現(xiàn)兼容應用的是Babel7.4.0之前的版本薛闪,7.4.0版本前轉(zhuǎn)碼主要應用到的工具還是@Babel/polyfill,由于Babel默認只轉(zhuǎn)換新的javascript語法俺陋,不支持新的Api(如Set豁延,Map,Promise)倔韭,所以還需要引入cors.js术浪,這個項目中沒有使用到Generator函數(shù)所以不需要引入regenerator-runtime,首先用vue-cli3創(chuàng)建的項目package.json文件中有browserslist這個字段或是在項目根目錄有一個.browserslistrc文件寿酌,這里是用來指定可用瀏覽器的范圍胰苏,關(guān)于指定瀏覽器版本配置可以參考這里https://github.com/browserslist/browserslist。順便貼出目前我的配置醇疼。

配置.browserslistrc

> 1%    //通過全局使用情況統(tǒng)計信息選擇的瀏覽器版本(個人理解為支持99%現(xiàn)代瀏覽器)
last 2 versions  //每個瀏覽器的最后兩個版本
not ie <= 8  //不支持ie8及以下

可以在終端運行npx browserslist查詢當前已選擇了那些瀏覽器

一個用vue-cli創(chuàng)建的項目中默認會使用@vue/babel-preset-app硕并,我們可以在node_modules > @vue > babel-preset-app > package.json文件中看到配置了core.js,

image.png

需要注意的是vue-cli默認創(chuàng)建的項目中使用的是core-js2.6版本的秧荆,而使用npm下載的默認為3.+版本倔毙,使用3.+版本運行vue項目會出現(xiàn)報錯core包不完整,vue-cli會按照core.js2.+版本的加載方式去轉(zhuǎn)碼乙濒,而core.js3.+版本中modules文件夾中子文件名稱統(tǒng)一前綴為es陕赃,core.js2.+中分為es5,es6颁股,es7這幾個模塊么库,再去編譯就會出現(xiàn)錯誤

配置babel.config.js

module.exports = {
  presets: [
    [
      '@vue/app',  //這里引用的則是node_modules中vue-cli對cors.js的配置
      {
        useBuiltIns: 'entry'  
        /*useBuiltIns提供了三個值 entry, usage,false,
          entry: 會自動根據(jù) .browserslistrc替換成瀏覽器不兼容的所有 polyfill,
                  需要在入口文件手動添加 import '@babel/polyfill'甘有。
          usage: 根據(jù)配置的瀏覽器兼容诉儒,以及你代碼中用到的 API 來進行 polyfill,實現(xiàn)了按需添加
          false: 此時不對 polyfill 做操作亏掀。如果引入 @babel/polyfill忱反,則無視配置的瀏覽器兼容泛释,引入所有的 polyfill
          */
      }
    ]
  ],
}

配置vue.config.js

module.exports = {
  //默認情況下 babel-loader 會忽略所有 node_modules 中的文件。
  //如果你想要通過 Babel 顯式轉(zhuǎn)譯一個依賴温算,可以在這個選項中列出來
  transpileDependencies: [
    'iview',
    'tree-table-vue',
    'apexcharts'
  ],
  //configureWebpack可以在該選項提供一個對象怜校,
  //該對象將會被 webpack-merge 合并入最終的 webpack 配置
  configureWebpack: {
      entry: ['@babel/polyfill', './src/main.js']
  }
}

沒有在entry入口文件進行配置@babel/polyfill網(wǎng)頁打開發(fā)現(xiàn)很多es6新的Api是不支持的。

此文章作為學習和記錄注竿,如果有問題或是不對的地方歡迎各位大佬指出韭畸,感激不盡!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔓搞,一起剝皮案震驚了整個濱河市胰丁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喂分,老刑警劉巖锦庸,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蒲祈,居然都是意外死亡甘萧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門梆掸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扬卷,“玉大人,你說我怎么就攤上這事酸钦」值茫” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵卑硫,是天一觀的道長徒恋。 經(jīng)常有香客問我,道長欢伏,這世上最難降的妖魔是什么入挣? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮硝拧,結(jié)果婚禮上径筏,老公的妹妹穿的比我還像新娘。我一直安慰自己障陶,他們只是感情好滋恬,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咸这,像睡著了一般夷恍。 火紅的嫁衣襯著肌膚如雪魔眨。 梳的紋絲不亂的頭發(fā)上媳维,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天酿雪,我揣著相機與錄音,去河邊找鬼侄刽。 笑死指黎,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的州丹。 我是一名探鬼主播醋安,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墓毒!你這毒婦竟也來了吓揪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤所计,失蹤者是張志新(化名)和其女友劉穎柠辞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體主胧,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡叭首,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了踪栋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焙格。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖夷都,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情囤官,我是刑警寧澤厢破,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站治拿,受9級特大地震影響摩泪,放射性物質(zhì)發(fā)生泄漏劫谅。R本人自食惡果不足惜见坑,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捏检。 院中可真熱鬧荞驴,春花似錦、人聲如沸贯城。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽能犯。三九已至鲫骗,卻和暖如春犬耻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背执泰。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工枕磁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人术吝。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓计济,卻偏偏與公主長得像,于是被迫代替她去往敵國和親排苍。 傳聞我的和親對象是個殘疾皇子沦寂,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容