Would be so grateful if someone could help me wrap my head around this. I have a project built in react. Using gulp to build my bundles. However, my bundles end up over 10Mb each. And the css 2Mb. Whenever I reload the page i download 22Mb data -- ridiculous, I know. I did not set up our environment and I have never worked with gulp/browserify/npm etc before. Our lead programmer quit about 6 weeks ago and now we are pushing the site live and I would really need to get the load time improved.
My own code is about 900 kb. My css is about 137 kb. I have 3 bundles.
vendor-bundle.js has the following included in the /assets/libs/index.js and adds up to 10Mb. After each include I have the sizes. How can semantic be 6Mb??? What am I doing wrong?
window.React = require('react'); (3 Mb)
require('jquery'); (1.7 Mb)
require('underscore'); (138 kb)
require('fastclick'); (72 kb)
require('semantic'); (6.7 Mb)
require('./markerclusterer'); (116 kb)
require('./stickyfill.min'); (30 kb)
app-bundle and account-bundle are the same size, about 11Mb each. account-bundle is loaded for the login/signup page and app-bundle for the main site. My own code is only 970 kb; how can the bundles add up to 11MB???
module.exports = {
sass: {
base_file: src + "/assets/css/main.scss",
src: src + "/assets/css/**/*.{sass,scss}",
dest: dest + "/css",
dest2: dest2 + "/css",
settings: {
indentedSyntax: true,
imagePath: 'images'
}
},
images: {
src: src + "/assets/images/**",
dest: dest + "/images",
dest2: dest2 + "/images"
},
fonts: {
src: src + '/assets/fonts/**',
dest: dest + '/fonts',
dest2: dest2 + "/fonts"
},
js: {
src: src + '/app/**/*.js',
dest: dest + 'js'
},
browserify: { // A separate bundle will be generated for each bundle config in this list
bundleConfigs: [{
entries: src + '/assets/libs/index.js',
dest: dest + '/js',
dest2: dest2 + '/js',
mapName: 'vendor.map.json',
outputName: 'vendor-bundle.js',
require: [ 'jquery', 'underscore' , 'fastclick' , 'semantic' ]
},{
entries: src + '/app/app.account.js',
dest: dest + '/js',
dest2: dest2 + '/js',
mapName: 'account.map,json',
outputName: 'account-bundle.js',
//list of externally available modules to exclude from the bundle
external: [ 'jquery', 'underscore', 'lodash' , 'fastclick' , 'semantic' , '/app/app.main.js']
},{
entries: src + '/app/app.main.js',
dest: dest + '/js',
dest2: dest2 + '/js',
mapName: 'app.map,json',
outputName: 'app-bundle.js',
//list of externally available modules to exclude from the bundle
external: [ 'jquery', 'underscore', 'lodash', 'fastclick' , 'semantic' ]
}]
},
production: {
cssSrc: dest + '/css/*.css',
jsSrc: dest + '/js/*.js',
dest: dest
}
};
Also, once I learn how to strip my bundles, how do I most easily compress them and remove all comments?
I have spent quite some time researching online, but I'm running out of time. Thank You