Wie verpacke ich meine Website mit Webpack, um sie zu produzieren?

Ich habe es geschafft, dieses @ zu verwend React-Hot-Boilerplate Konfigurationsskript zum Erstellen und Testen einer einfachen React Flux-Webanwendung.

Nun, dass ich eine Website habe, die mir gefällt, wenn ichnpm start, was wäre die einfachste / beste Möglichkeit, einen Produktions-Build in die Konfiguration aufzunehmen? Wenn ich diesen 'package'-Befehl verwende, möchte ich ein kleines @ erhalteprod Ordner mit all den finalen HTML- und minimierten JS-Dateien, die ich brauche, ist das das, was ich erwarten sollte?

Das ist mein package.json :

{
  "name": "react-hot-boilerplate",
  "version": "1.0.0",
  "description": "Boilerplate for ReactJS project with hot code reloading",
  "scripts": {
    "start": "node server.js",
    "lint": "eslint src"
  },
  "author": "Dan Abramov <[email protected]> (http://github.com/gaearon)",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/gaearon/react-hot-boilerplate/issues"
  },
  "homepage": "https://github.com/gaearon/react-hot-boilerplate",
  "devDependencies": {
    "babel-core": "^5.4.7",
    "babel-eslint": "^3.1.9",
    "babel-loader": "^5.1.2",
    "eslint-plugin-react": "^2.3.0",
    "react-hot-loader": "^1.2.7",
    "webpack": "^1.9.6",
    "webpack-dev-server": "^1.8.2"
  },
  "dependencies": {
    "react": "^0.13.0",
    "flux": "^2.0.2",
    "events": "^1.0.2",
    "object-assign": "^3.0.0",
    "jquery": "^2.1.4",
    "imports-loader": "^0.6.4",
    "url-loader": "^0.5.6",
    "numeral": "^1.5.3",
    "bootstrap": "^3.3.5",
    "d3": "^3.5.6",
    "zeroclipboard": "^2.2.0",
    "react-toastr": "^1.5.1",
    "d3-legend": "^1.0.0"
  }
}

Ich denke, ich möchte ein neues Skript zur Skriptliste hinzufügen, damit ich ein neues @ verwenden kannpm xyz Befehl, aber ich bin nicht sicher, was ich dort schreiben soll.

Auch mein Webpack.config.js, für den Fall, dass ich (?) eine ähnliche, aber unterschiedliche Kopie für die Produktkonfiguration verwenden muss:

  var path = require('path');
  var webpack = require('webpack');

  module.exports = {
    devtool: 'eval',
    entry: [
      'webpack-dev-server/client?http://localhost:3000',
      'webpack/hot/only-dev-server',
      './src/index'
    ],
    output: {
      path: path.join(__dirname, 'dist'),
      filename: 'bundle.js',
      publicPath: '/static/'
    },
    plugins: [
      new webpack.HotModuleReplacementPlugin(),
      new webpack.NoErrorsPlugin(),
      new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery" })
    ],
    externales: { "jquery": "jQuery", "$": 'jQuery' },
    resolve: {
      extensions: ['', '.js', '.jsx']
    },
    module: {
      loaders: [
        {
          test: /\.jsx?$/,
          loaders: ['react-hot', 'babel'],
          include: path.join(__dirname, 'src')
        },
        { test: /\.less$/, loader: 'style-loader!css-loader!less-loader' }, // use ! to chain loaders
        { test: /\.css$/, loader: 'style-loader!css-loader' },
        {test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192'} // inline base64 URLs for <=8k images, direct URLs for the rest
      ]
    }
  };

Und ich bin mir nicht sicher, welche Teile ich behalten, ändern (prod config) oder hinzufügen soll, wenn eine Kopie erforderlich ist ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage