webpackは初めてです。 なぜそれがそのような重いbundle.jsをコンパイルするのか理解できません。 あなたの例の中で最も小さなものでも、todos-with-undoは1.9 MBです! 他のより複雑な例の場合、約2.5MBです。 構成に間違いなく問題があります。
ちなみに素晴らしい仕事:)
それ自体は何も悪いことではありません。例は本番用に構成されていないだけです。 メンテナンスの負担を避けるために、ここでこれを行う可能性は低いです。本番構成の例については、より完全なWebpackボイラープレートを参照してください。
少なくとも、本番環境でこれを実行する必要があります。
devtool
を'eval'
から'source-map'
webpack.DefinePlugin
を追加して、 process.env.NODE_ENV
を'production'
webpack.optimize.UglifyJsPlugin
を追加しますNODE_ENV=production
Babelに電話するようにしてください。そうすれば、 .babelrc
はreact-transform
有効にしません。典型的なWebpack本番構成は次のようになります。
var path = require('path');
var webpack = require('webpack');
module.exports = {
devtool: 'source-map',
entry: [
'./src/index'
],
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/static/'
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production')
}
}),
new webpack.optimize.UglifyJsPlugin({
compressor: {
warnings: false
}
})
],
module: {
loaders: [{
test: /\.js$/,
loaders: ['babel'],
include: path.join(__dirname, 'src')
}]
}
};
興味のある方は、プロダクションモードを含む定型文をご覧ください。
最善の方法はAsyncRouteです。 複数のリクエストを回避するために、コンポーネントのtemplate / css / jsをバンドルする必要がありますが、オンデマンドでロードします。
source-map
だけでなくinline-source-map
devtool
として
最も参考になるコメント
それ自体は何も悪いことではありません。例は本番用に構成されていないだけです。 メンテナンスの負担を避けるために、ここでこれを行う可能性は低いです。本番構成の例については、より完全なWebpackボイラープレートを参照してください。
少なくとも、本番環境でこれを実行する必要があります。
devtool
を'eval'
から'source-map'
webpack.DefinePlugin
を追加して、process.env.NODE_ENV
を'production'
webpack.optimize.UglifyJsPlugin
を追加しますNODE_ENV=production
Babelに電話するようにしてください。そうすれば、.babelrc
はreact-transform
有効にしません。典型的なWebpack本番構成は次のようになります。
興味のある方は、プロダクションモードを含む定型文をご覧ください。