詳解webpack運(yùn)行Babel教程
摘要:Babel是轉(zhuǎn)碼器,webpack是打包工具,它們應(yīng)該如何一起使用呢?
GitHub倉庫: Fundebug/webpack-babel-tutorial

ES6 + IE10 = 語法錯(cuò)誤!
setTimeout(() =>
{
console.log("Hello, Fundebug!");
}, 100)
由于低版本的瀏覽器沒有支持ES6語法,這就意味著代碼會(huì)出錯(cuò)。例如,在IE 10瀏覽器中,會(huì)出現(xiàn)”語法錯(cuò)誤”:

如果你使用了Fundebug錯(cuò)誤監(jiān)控服務(wù),則會(huì)收到這樣的報(bào)錯(cuò):

直接使用babel轉(zhuǎn)碼
當(dāng)你使用更高版本的JavaScript語法時(shí),比如ES7,低版本的瀏覽器將無法運(yùn)行。為了兼容低版本的瀏覽器,比如萬惡的IE,我們不得不使用Babel ,將ES6、ES7等高版本代碼轉(zhuǎn)換為ES5代碼。
安裝 babel-cli
sudo npm install --global babel-cli
使用babel命令轉(zhuǎn)碼
babel test.js --out-file compiled.js
轉(zhuǎn)碼之后生成的代碼為compiled.js :
setTimeout(function () {
console.log("Hello, Fundebug!");
}, 100);
可知,箭頭函數(shù)轉(zhuǎn)換成了function,這樣就代碼可以在IE 10等不支持ES6的瀏覽器上正確執(zhí)行了。
廣告:歡迎免費(fèi)試用Fundebug,助您第一時(shí)間發(fā)現(xiàn)代碼BUG。
使用webpack運(yùn)行Babel
一般項(xiàng)目中都會(huì)使用 webpack 對(duì)代碼進(jìn)行打包,比如,將多個(gè)js文件打包成1個(gè)js文件,這樣可以減少前端的資源請(qǐng)求。因此,我們需要將Babel也集成到webpack中。
安裝webpack
npm install --global webpack
我使用的webpack版本為4.10.0
webpack --version 4.10.0
安裝babel
npm install --save-dev babel-cli babel-preset-env
babel-preset-env 是Babel新版的preset,它可以讓我們 靈活地設(shè)置代碼目標(biāo)執(zhí)行環(huán)境 ,比如只支持各個(gè)瀏覽器最新的2個(gè)版本,支持IE8及其以上的IE瀏覽器。
安裝babel-loader
npm install --save-dev babel-loader
babel-loader 是webpack的babel插件,它讓我們可以在wepback中運(yùn)行Babel。
配置babel
新增 .babelrc 文件:
{
"presets": ["env"]
}
配置webpack
新增 webpack.config.js 文件:
module.exports = {
entry: './test.js',
output:
{
path: __dirname,
filename: 'bundle.js'
},
module:
{
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}]
}
};
可知,我們?cè)趙ebpack中使用了babel-loader插件來運(yùn)行Babel,轉(zhuǎn)換所有的.js代碼(除了node_modules中的代碼)。
使用webpack運(yùn)行babel
webpack --mode production
轉(zhuǎn)換之后的代碼為bundle.js 。bundle.js只有1行代碼,這是因?yàn)闉槲覀冎付ǖ膍ode為production,webpack為了壓縮代碼只生成了1行代碼。
參考
webpack 配合babel 將es6轉(zhuǎn)成es5 超簡(jiǎn)單實(shí)例
babel-preset-env: a preset that configures Babel for you
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
bootstrap精簡(jiǎn)教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了bootstrap精簡(jiǎn)教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
使用js在layui中實(shí)現(xiàn)上傳圖片壓縮
這篇文章主要介紹了使用js在layui中實(shí)現(xiàn)上傳圖片壓縮,layui 是一款采用自身模塊規(guī)范編寫的前端 UI 框架,js上傳圖片壓縮百度有很多方法,,需要的朋友可以參考下2019-06-06
jquery下onpropertychange事件的綁定方法
用了onchange事件,但是在輸入的時(shí)候,用Javascript計(jì)算出并填值的那一列并不會(huì)響應(yīng)onchange 事件。2010-08-08
Bootstrap幻燈片輪播圖支持觸屏左右手勢(shì)滑動(dòng)的實(shí)現(xiàn)方法
最近在研究用bootstrap搭建網(wǎng)站,Bootstrap能自適應(yīng)pc端和手機(jī)端,并且移動(dòng)設(shè)備優(yōu)先,適合現(xiàn)如今移動(dòng)營(yíng)銷,大家用的設(shè)備基本是觸屏的了,能用滑動(dòng)交互在小屏幕上體驗(yàn)會(huì)更好,那么如何實(shí)現(xiàn)呢?下面小編給大家介紹下bootstrap 手勢(shì)滑動(dòng)輪播圖的實(shí)現(xiàn)方法2016-10-10
詳解微信小程序的不同函數(shù)調(diào)用的幾種方法
這篇文章主要介紹了微信小程序的不同函數(shù)調(diào)用的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
JavaScript 隨機(jī)驗(yàn)證碼的生成實(shí)例代碼
這篇文章主要介紹了JavaScript 隨機(jī)驗(yàn)證碼的生成實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-09-09
layui問題之模擬select點(diǎn)擊事件的實(shí)例講解
今天小編就為大家分享一篇layui問題之模擬select點(diǎn)擊事件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
TypeScript?類型斷言的幾種實(shí)現(xiàn)
本文主要介紹了TypeScript?類型斷言的實(shí)現(xiàn),有使用關(guān)鍵字as和標(biāo)簽<>兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01

