设置简单

设置文件夹

此示例假设代码位于 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 与里面的转换代码并结束示例。