亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

babel如何根據不同瀏覽器編譯不同js

babel如何根據不同瀏覽器編譯不同js

茅侃侃 2019-02-12 17:23:37
問題描述babel中babel-preset-env可以根據不同的瀏覽器版本針對這些版本進行選擇性編譯例如{"presets": [    ["env",{        "targets": {            "chrome": 25,            "browsers": ["last 2 versions","safari 7"]        }    }]]}上邊的意思就是針對大部分瀏覽器最新的兩個版本以及IE 7+以及chrome25版本進行轉碼編譯但是這樣只是針對需要轉碼的瀏覽器做的一套適配,像高版本chrome瀏覽器已經支持了es6,那么肯定就不需要轉碼了,所以我想問下怎么針對不同瀏覽器做轉碼與不轉嗎或者部分轉碼的適配說下自己的理解1 針對不同瀏覽器版本每次手動配置babel并且編譯出不同的js,然后頁面中有個初始檢查模塊用來檢測當前瀏覽器版本,然后調用不同的js(支持es6的使用最新語法js,不支持的使用轉碼的js)2 針對不同瀏覽器版本每次手動配置babel并且編譯出同一個js,但是這個js里面可以根據不同瀏覽器選擇不同的方法來執行(目測這種方式肯定不行,為了適配增加了不必要的代碼,而且實行起來可能也很麻煩)總結:所以babel是如何做到真正按需分配的?
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

babel只是按照你配置的環境進行轉碼了啊,所謂的轉碼其實也就是把一些瀏覽器不支持的新語法,轉換成老語法.

你的問題是問你要如何做到兼容所有版本瀏覽器嗎? 還是不知道babel如何按照瀏覽器轉碼?

  1. 兼容所有瀏覽器只需要兼容低版本就可以了,因為js大部分特性是可以做到向下兼容的.也就是新瀏覽器仍然支持老語法.

  2. babel按照你輸入的瀏覽器版本和其他條件,去查詢對應的js支持版本,然后找到所有條件下支持的最高級別Js版本,轉碼到該版本.轉碼過程跟瀏覽器沒有任何關系,只是在node環境中進行.


查看完整回答
反對 回復 2019-02-24
  • 1 回答
  • 0 關注
  • 717 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號