私はreact + babel + webpackプロジェクトを作成しようとしています。 は動作しますが、bundle.jsファイルのサイズは950KBです。webpackプロジェクトでbundle.jsが大きすぎます
はbundle.jsはいつも大きいですか? もしそうでなければ、私はどのようにサイズを減らすのですか?
これは私のwebpack.config.jsです:
var webpack = require('webpack');
var path = require('path');
var BUILD_DIR = path.resolve(__dirname, 'src/client/public');
var APP_DIR = path.resolve(__dirname, 'src/client/app');
var config = {
entry: APP_DIR + '/index.jsx',
output: {
path: BUILD_DIR,
filename: 'bundle.js'
},
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 : /\.jsx?/,
loader : 'babel',
query:
{
presets: ["es2015", 'react']
}
}
]
}
};
module.exports = config;
はい。バンドルは依存関係に基づいて拡張されます。 webpackは、インポートを使用してインクルードするすべての依存関係をパックします。別の方法として、展開中にCDNを依存関係にできるだけ使うことができ、反応コンポーネントにbabelを使用してES6をES5に変換します。 – subash
それはあなたが一緒に持っているライブラリにも依存しています。また、ベンダーのlibrairiesとアプリケーションコードの間でバンドルを分割することもできます。この方法では、クライアントはベンダーをキャッシュすることができ、しばらくの間はもう一度ダウンロードする必要はありません。また、後でコンパイルを分割して高速化するWebpack dllの方法もあります(hmrなどのツールを使用している場合) – gretro