share_this_document script plugin page doc_page dev cannot body app javascript webpack

javascript - script - Webpack: ¿Cómo optimizar el bundle.js generado? Es demasiado grande en mi caso



webpack html loader (2)

Agregue esto en su archivo de configuración de producción:

plugins: [ new webpack.DefinePlugin({ ''process.env'': { // This has effect on the react lib size ''NODE_ENV'': JSON.stringify(''production''), } }), new ExtractTextPlugin("bundle.css", {allChunks: false}), new webpack.optimize.AggressiveMergingPlugin(), new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.DedupePlugin(), new webpack.optimize.UglifyJsPlugin({ mangle: true, compress: { warnings: false, // Suppress uglification warnings pure_getters: true, unsafe: true, unsafe_comps: true, screw_ie8: true }, output: { comments: false, }, exclude: [//.min/.js$/gi] // skip pre-minified libs }), new webpack.IgnorePlugin(/^/.//locale$/, [/moment$/]), //https://stackoverflow.com/questions/25384360/how-to-prevent-moment-js-from-loading-locales-with-webpack new CompressionPlugin({ asset: "[path].gz[query]", algorithm: "gzip", test: //.js$|/.css$|/.html$/, threshold: 10240, minRatio: 0 }) ],

Soy nuevo en Webpack. Intento usar Webpack por dos razones principales:

  • Gestión de componentes: utilizando require(...)
  • Rendimiento: menor tamaño posible, menos solicitudes posibles para el servidor.

Pero con la aplicación que acabo de comenzar (actualmente hay algo así como solo cuatro componentes React), el archivo bundle.js generado por Webpack es de 3.87Mb.

Estoy bastante seguro de que Webpack incluye cosas que nunca necesitaré. Me gustaría saber cómo optimizar el archivo generado ... ¿Cómo "depuro" el proceso de Webpack?

Mi webpack.config.js :

var webpack = require("webpack"); module.exports = { entry: "./app/bootstrap.js", output: { path: __dirname, publicPath: "/public/", filename: "bundle.js" }, module: { loaders: [ { test: //.css$/, loader: "style!css" }, { test: //.js$/, exclude: /(node_modules|bower_components)/, loader: ''babel-loader'' }, { test: //.js$/, include: /vis/, loader: ''babel-loader'' }, { test: //.(png|woff|woff2|eot|ttf|svg|gif|jpg|jpeg|bmp)(/?.*$|$)/, loader: ''url-loader?limit=100000'' } ] }, plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "window.jQuery": "jquery" }), new webpack.optimize.UglifyJsPlugin({minimize: true}) ] };

y package.json :

{ "name": "XXXXX", "version": "1.0.0", "main": "", "scripts": { "dev": "webpack --progress --colors --watch --devtool eval", "prod": "webpack --progress --colors" }, "author": "", "license": "ISC", "dependencies": { "alt": "^0.16.10", "bootstrap": "^3.3.5", "es6-promise": "^2.3.0", "i18next-client": "^1.10.2", "jquery": "^1.10.2", "react": "^0.13.3", "react-router": "^0.13.3", "toastr": "^2.1.0", "vis": "^4.4.0" }, "devDependencies": { "css-loader": "^0.15.1", "babel-core": "^5.6.18", "babel-loader": "^5.3.1", "es6-module-loader": "^0.17.3", "extract-text-webpack-plugin": "^0.8.2", "file-loader": "^0.8.4", "node-libs-browser": "^0.5.2", "webpack": "^1.9.13", "url-loader": "^0.5.6", "style-loader": "^0.12.3", "webpack-dev-server": "^1.9.0" } }

¿Alguna ayuda sobre cómo optimizar el bundle.js generado?