設定簡單

設定資料夾

此示例假設程式碼位於 src/中,輸出將放入 out/中。因此,資料夾結構應該類似於

example/
|-- src/
|   |-- index.js
|   `-- ...
|-- out/
`-- package.json

設定包

假設設定 npm 環境,我們首先需要設定 babel 以便將 React 程式碼轉換為符合 es5 的程式碼。

$npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react

上面的命令將指示 npm 安裝核心 babel 庫以及用於 webpack 的載入器模組。我們還安裝了 es6 併為 babel 做出反應預設,以瞭解 JSX 和 es6 模組程式碼。 (有關預設的更多資訊可以在這裡找到 Babel 預設

$npm i -D webpack

此命令將安裝 webpack 作為開發依賴項。 ( 是安裝的簡寫, -D 是 –save-dev 的簡寫)

你可能還想安裝任何其他 webpack 包(例如其他載入器或 webpack-dev-server 擴充套件)

最後,我們需要實際的反應程式碼

$npm i -D react react-dom

設定 webpack

使用依賴項設定,我們需要一個 webpack.config.js 檔案來告訴 webpack 要做什麼

簡單的 webpack.config.js:

var path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'out'),
    filename: 'bundle.js'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /(node_modules)/,
        loader: 'babel-loader',
        query: {
          presets: ['es2015', 'react']
        }
      }
    ]
  }
};

該檔案告訴 webpack 從 index.js 檔案開始(假設在 src /中)並將其轉換為 out 目錄中的單個 bundle.js 檔案。

module 塊告訴 webpack 測試遇到正規表示式的所有檔案,如果它們匹配,將呼叫指定的載入器。 (在這種情況下為 babel-loader)此外,exclude 正規表示式告訴 webpack 忽略 node_modules 資料夾中所有模組的這個特殊載入器,這有助於加快轉換過程。最後,query 選項告訴 webpack 要傳遞給 babel 的引數,並用於傳遞我們之前安裝的預設。

測試設定

現在剩下的就是建立 src/index.js 檔案並嘗試打包應用程式

SRC / index.js:

'use strict'

import React from 'react'
import { render } from 'react-dom'

const App = () => {
  return <h1>Hello world!</h1>
}

render(
  <App />,
  document. getElementById('app')
)

這個檔案通常會將一個簡單的 <h1>Hello world!</h1> Header 渲染到帶有 id’app’的 html 標籤中,但是現在它應該足以將程式碼轉換一次。

$./node_modules/.bin/webpack . 將執行本地安裝的 webpack 版本(如果使用 -g 全域性安裝 webpack,請使用 $webpack

這應該建立檔案 out/bundle.js 與裡面的轉換程式碼並結束示例。