ES6 + IE10 = 語法錯誤!
由于低版本的瀏覽器沒有支持ES6語法,,這就意味著代碼會出錯,。例如,在IE 10瀏覽器中,,會出現(xiàn)”語法錯誤”: 如果你使用了Fundebug錯誤監(jiān)控服務(wù),,則會收到這樣的報錯: 直接使用babel轉(zhuǎn)碼當(dāng)你使用更高版本的JavaScript語法時,比如ES7,,低版本的瀏覽器將無法運行,。為了兼容低版本的瀏覽器,比如萬惡的IE,,我們不得不使用Babel,,將ES6、ES7等高版本代碼轉(zhuǎn)換為ES5代碼,。 安裝babel-cli
使用babel命令轉(zhuǎn)碼
轉(zhuǎn)碼之后生成的代碼為compiled.js:
可知,,箭頭函數(shù)轉(zhuǎn)換成了function,這樣就代碼可以在IE 10等不支持ES6的瀏覽器上正確執(zhí)行了,。 廣告:歡迎免費試用Fundebug,,助您第一時間發(fā)現(xiàn)代碼BUG。 使用webpack運行Babel一般項目中都會使用webpack對代碼進行打包,,比如,,將多個js文件打包成1個js文件,這樣可以減少前端的資源請求,。因此,,我們需要將Babel也集成到webpack中。 安裝webpack
我使用的webpack版本為4.10.0
安裝babel
babel-preset-env是Babel新版的preset,它可以讓我們靈活地設(shè)置代碼目標執(zhí)行環(huán)境,,比如只支持各個瀏覽器最新的2個版本,,支持IE8及其以上的IE瀏覽器。 安裝babel-loader
babel-loader是webpack的babel插件,,它讓我們可以在wepback中運行Babel,。 配置babel新增.babelrc文件:
配置webpack新增webpack.config.js文件:
可知,我們在webpack中使用了babel-loader插件來運行Babel,,轉(zhuǎn)換所有的.js代碼(除了node_modules中的代碼),。 使用webpack運行babel
轉(zhuǎn)換之后的代碼為bundle.js。bundle.js只有1行代碼,,這是因為為我們指定的mode為production,,webpack為了壓縮代碼只生成了1行代碼。 |
|
來自: Fundebug > 《Fundebug》