You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
var gulp = require('gulp');
|
|
var browserSync = require('browser-sync');
|
|
var browserSyncSpa = require('browser-sync-spa');
|
|
|
|
var util = require('util');
|
|
|
|
var middleware = require('./proxy');
|
|
|
|
module.exports = function(options) {
|
|
|
|
function browserSyncInit(baseDir, browser) {
|
|
browser = browser === undefined ? 'default' : browser;
|
|
|
|
var routes = null;
|
|
if(baseDir === options.src || (util.isArray(baseDir) && baseDir.indexOf(options.src) !== -1)) {
|
|
routes = {
|
|
'/bower_components': 'bower_components',
|
|
'/ugliest-website': 'src/ugliest-website'
|
|
};
|
|
}
|
|
|
|
var server = {
|
|
baseDir: baseDir,
|
|
routes: routes
|
|
};
|
|
|
|
if(middleware.length > 0) {
|
|
server.middleware = middleware;
|
|
}
|
|
|
|
browserSync.instance = browserSync.init({
|
|
startPath: '/',
|
|
server: server,
|
|
browser: browser
|
|
});
|
|
}
|
|
|
|
browserSync.use(browserSyncSpa({
|
|
selector: '[ng-app]'// Only needed for angular apps
|
|
}));
|
|
|
|
gulp.task('serve', ['watch'], function () {
|
|
browserSyncInit([options.tmp + '/serve', options.src]);
|
|
});
|
|
|
|
gulp.task('serve:dist', ['build'], function () {
|
|
browserSyncInit(options.dist);
|
|
});
|
|
|
|
gulp.task('serve:e2e', ['inject'], function () {
|
|
browserSyncInit([options.tmp + '/serve', options.src], []);
|
|
});
|
|
|
|
gulp.task('serve:e2e-dist', ['build'], function () {
|
|
browserSyncInit(options.dist, []);
|
|
});
|
|
};
|