summaryrefslogtreecommitdiff
path: root/client/build.js
diff options
context:
space:
mode:
authorrr- <rr-@sakuya.pl>2016-05-14 13:50:39 +0200
committerrr- <rr-@sakuya.pl>2016-05-14 13:50:39 +0200
commit914bee4c640100572a664254837467237d1d0ab6 (patch)
tree71ad53c2d5ba66f5d66954bee03b6d68b61b53ba /client/build.js
parent2cba1a432fe5937204b8b27667725d2ec61e8ef8 (diff)
client/build: compile vendor packages separately
Diffstat (limited to 'client/build.js')
-rw-r--r--client/build.js55
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');
+ }
});
}