2015年6月ES2015也就是ES6正式發布。這相比於2009年發布的ES5有了重大的改變,ES6提供了很多新特性。但是有一個問題,那就是兼容性。在眾多瀏覽器當中,兼容性參差不齊,其中兼容性最好的要數谷歌(Chrome)和火狐(Firefox)了。 這時候要是想用ES6的新特性又要保證兼容性就得借助別的工具來實現。比較通用的工具方案有 babel,jsx,traceur,es6-shim 等。現在介紹一下如何利用babel將ES6轉為ES5。
創建一個項目
項目里建立src和dist兩個目錄,在src目錄下創建index.js,內容如下:
let b = 1;
console.log(b)
const name = '張三'
console.log(name)
初始化項目
npm init
執行完以上命令后,根目錄下會生成package.json。
安裝babel工具
npm install -g babel-cli
npm install --save-dev babel-preset-es2015 babel-cli
執行完上面兩句指令后,package.json文件里便多了devDependencies選項,項目根目錄多了一個node_modules和package-lock.json。
創建babel配置文件
在項目根目錄下創建名為.babelrc的文件。如果是在Windows系統里文件名要輸入 .babelrc.(前后兩個點),否則會報錯。.babelrc文件內容如下:
{
"presets": [
"es2015"
],
"plugins": []
}
這個時候可以開始轉換了,輸入以下指令:
babel src --out-dir dist
或者輸入實時監控指令
babel src --watch --out-dir dist
轉化完后,再看一下dis目錄,發現已經將src目錄下的ES6代碼轉為ES5了。
接下來可以簡化一下轉化指令,在package.json里添加編譯別名:
"build": "babel src --out-dir dist"
之后只要執行下面這指令便可以了:
npm run build