上一篇介紹了 Webpack 基礎設定,這次要來介紹 JavaScript ES6 要怎麼使用 Webpack + Babel 來編譯成 ES5

安裝 Babel

npm install babel-loader @babel/core @babel/preset-env --save-dev
  • babel-loader 讀取檔案格式
  • @babel/core babel 的核心,主要負責解析並產出新的原始碼
  • @babel/preset-env 有點像是規則書,裏面包含了 ES5、ES6、ES7 的邏輯,幫助你將語法轉成 ES5

設定 Babel

編輯 webpack.config.js 新增 module

const path = require('path');
module.exports = {
  context: path.resolve(__dirname, 'src'),
  entry: './index.js',
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'index.bundle.js',
  },
  module: {
    rules: [
      {
        test: /\.(js)$/,
        exclude: /(node_modules)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
          },
        },
      },
    ],
  },
};

執行編譯

在 index.js 寫簡單的 ES6 語法

$ npm run start

看看他編譯出來的結果

實際網頁 Console

確認網頁有執行成功!!

結語

ES6 發布後,有需多簡潔有效率的語法,增進了工程師們的開發,雖然每年 JavaScript 都有在更新,但瀏覽器支援度卻跟不上更新的速度,所以才會有 Babel 的存在。

Babel 是一個目前被廣泛使用的編譯工具, 可以運行在許多自動化工具上面,當然除了 Babel,也可以考慮使用看看 Sucrase ,Sucrase 目前我還沒有使用過,有機會再研究寫分享文給大家


參考資料

Webpack 教學 (四):JavaScript 與 Babel