Ich habe mein Webpack eine große main.js-Datei (1,7 MB) mit einem kleinen Projekt von ~ 20-30 Dateien weniger als 100 Zeilen generieren. Die Abhängigkeiten erforderlich sind gering an Zahl (Reaktion, Fluxible) und ich jede optimize Plugin verwende ich verstehen kann:Webpack Erstellen einer großen Datei mit kleinem Projekt
module.exports = {
output: {
path: './build',
publicPath: '/public/',
filename: '[name].js'
},
debug: false,
devtool: 'eval',
target: 'web',
entry: [
'bootstrap-sass!./bootstrap-sass.config.js',
'./client.js',
],
stats: {
colors: true,
reasons: false
},
resolve: {
extensions: ['', '.js'],
alias: {
'styles': __dirname + '/src/styles',
'components': __dirname + '/src/scripts/components',
'actions': __dirname + '/src/scripts/actions',
'stores': __dirname + '/src/scripts/stores',
'constants': __dirname + '/src/scripts/constants',
'mixins': __dirname + '/src/scripts/mixins',
'configs': __dirname + '/src/scripts/configs',
'utils': __dirname + '/src/scripts/utils'
}
},
module: {
loaders: [
{ test: /\.css$/, loader: 'style!css' },
{ test: /\.js$/, exclude: /node_modules/, loader: require.resolve('babel-loader') },
{ test: /\.json$/, loader: 'json-loader'},
{ test: /\.(png|svg|jpg)$/, loader: 'url-loader?limit=8192' },
{ test: /\.(ttf|eot|svg|woff|woff(2))(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url?name=/[name].[ext]"},
{ test: /\.scss$/,
loader: ExtractTextPlugin.extract('style-loader',
'css!sass?outputStyle=expanded&' +
"includePaths[]=" +
(path.resolve(__dirname, "./node_modules"))
)
}
]
},
plugins: [
new webpack.NoErrorsPlugin(),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"windows.jQuery": "jquery"
}),
new ExtractTextPlugin("[name].css", {allChunks: true}),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.AggressiveMergingPlugin()
],
};
Was mache ich falsch oder wo kann ich weiterhin die Größe der Datei verbessern?
Ja definitiv werde ich einen Blick darauf werfen und sehen, wie es den Code beeinflusst. Außerdem habe ich meinen Fehler gefunden, den ich vorschlagen würde, der Antwort hinzuzufügen, ich habe 'Devtools: true' gemacht, was meine Datei sehr groß gemacht hat, während sie für die Produktion nicht wahr sein muss. –
Cool, ich habe das hinzugefügt. Habe 'Devtool' komplett vergessen. –
Eine alternative, Kommandozeilen-Tool für Webpack-Bundle-Analyse: https://github.com/robertknight/webpack-bundle-size-analyzer – jmu