diff options
| author | rr- <rr-@sakuya.pl> | 2016-05-14 13:50:39 +0200 |
|---|---|---|
| committer | rr- <rr-@sakuya.pl> | 2016-05-14 13:50:39 +0200 |
| commit | 914bee4c640100572a664254837467237d1d0ab6 (patch) | |
| tree | 71ad53c2d5ba66f5d66954bee03b6d68b61b53ba /client/build.js | |
| parent | 2cba1a432fe5937204b8b27667725d2ec61e8ef8 (diff) | |
client/build: compile vendor packages separately
Diffstat (limited to 'client/build.js')
| -rw-r--r-- | client/build.js | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/client/build.js b/client/build.js index a1eac06..d49a502 100644 --- a/client/build.js +++ b/client/build.js @@ -98,29 +98,56 @@ function bundleCss() { css += stylus.render( fs.readFileSync(file, 'utf-8'), {filename: file}); } - fs.writeFileSync('./public/bundle.min.css', minify(css)); + fs.writeFileSync('./public/app.min.css', minify(css)); console.info('Bundled CSS'); }); } +function writeJsBundle(b, path, message) { + const uglifyjs = require('uglify-js'); + let outputFile = fs.createWriteStream(path); + b.bundle().pipe(outputFile); + outputFile.on('finish', function() { + if (!config.debug) { + const result = uglifyjs.minify(path); + fs.writeFileSync(path, result.code); + } + console.info(message); + }); +} + function bundleJs(config) { const babelify = require('babelify'); const browserify = require('browserify'); - const uglifyjs = require('uglify-js'); - glob('./js/**/*.js', {}, function(er, files) { - const outputFile = fs.createWriteStream('./public/bundle.min.js'); - let b = browserify({debug: config.debug}); - if (config.transpile) { - b = b.transform(babelify); + const external = [ + 'lodash', + 'superagent', + 'mousetrap', + 'js-cookie', + 'page', + 'nprogress', + 'babel-polyfill', + ]; + glob('./js/**/*.js', {}, (er, files) => { + { + let b = browserify(); + for (let lib of external) { + b.require(lib); + } + writeJsBundle(b, './public/vendor.min.js', 'Bundled vendor JS'); } - b.add(files).bundle().pipe(outputFile); - outputFile.on('finish', function() { - if (!config.debug) { - const result = uglifyjs.minify('./public/bundle.min.js'); - fs.writeFileSync('./public/bundle.min.js', result.code); + + { + let outputFile = fs.createWriteStream('./public/app.min.js'); + let b = browserify({debug: config.debug}); + if (config.transpile) { + b = b.transform(babelify); } - console.info('Bundled JS'); - }); + b.external(external); + b.on('dep', dep => { console.log(dep.file); }); + b.add(files); + writeJsBundle(b, './public/app.min.js', 'Bundled app JS'); + } }); } |