Ich versuche ein reactive + babel + webpack-Projekt zu erstellen. es funktioniert, aber die bundle.js-Datei ist 950 KB groß.bundle.js zu groß im Webpack-Projekt
ist bundle.js immer so groß? Wenn nicht, wie reduziere ich die Größe?
das ist mein 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;
ja. Bündel wird basierend auf Ihren Abhängigkeiten wachsen. webpack wird alle Ihre Abhängigkeiten packen, wo Sie diese mit importieren. Alternativ können Sie CDN für Ihre Abhängigkeiten während der Bereitstellung verwenden und ES6 zu ES5 konvertieren, indem Sie babel für Ihre reaktiven Komponenten verwenden. – subash
Es hängt immer von den Bibliotheken ab, die Sie damit bündeln. Sie können auch versuchen, das Paket zwischen den Anbieterbibliotheken und Ihrem App-Code aufzuteilen. Auf diese Weise kann der Client den Anbieter zwischenspeichern und muss ihn für eine Weile nicht erneut herunterladen. Sie haben auch den Webpack-dll-Ansatz, der die Kompilierung splittet und beschleunigt (wenn Sie ein Tool wie hmr verwenden) – gretro