startpage/tasks/build.js

47 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2018-10-18 18:01:53 +03:00
let argv = require('yargs').argv;
let bin = require('./bin');
let command = require('node-cmd');
let AfterWebpack = require('on-build-webpack');
let BrowserSync = require('browser-sync');
let BrowserSyncPlugin = require('browser-sync-webpack-plugin');
let Watch = require('webpack-watch');
let browserSyncInstance;
let env = argv.e || argv.env || 'local';
let port = argv.p || argv.port || 3000;
module.exports = {
jigsaw: new AfterWebpack(() => {
command.get(bin.path() + ' build ' + env, (error, stdout, stderr) => {
console.log(error ? stderr : stdout);
if (browserSyncInstance) {
browserSyncInstance.reload();
}
});
}),
watch: function(paths) {
return new Watch({
options: { ignoreInitial: true },
paths: paths,
})
},
browserSync: function(proxy) {
return new BrowserSyncPlugin({
notify: false,
port: port,
proxy: proxy,
server: proxy ? null : { baseDir: 'build_' + env + '/' },
},
{
reload: false,
callback: function() {
browserSyncInstance = BrowserSync.get('bs-webpack-plugin');
},
})
},
};