1 | 'use strict';
|
2 |
|
3 | var path = require('path'),
|
4 | util = require('gulp-util'),
|
5 | browserSync = require('browser-sync');
|
6 |
|
7 | function append(snippet) {
|
8 | return snippet;
|
9 | }
|
10 |
|
11 | function numpad(value) {
|
12 | return value < 10 ? '0' + value : value;
|
13 | }
|
14 |
|
15 | function ctime() {
|
16 | var now = new Date(),
|
17 | time = [now.getHours(), now.getMinutes(), now.getSeconds()].map(numpad).join(':');
|
18 |
|
19 | return '[' + util.colors.gray(time) + '] ';
|
20 | }
|
21 |
|
22 | module.exports = function(options) {
|
23 | var config = {
|
24 | files: [path.join(options.paths.dest, '**/*.*')],
|
25 | port: typeof options.env.port === 'number' ? options.env.port : 3000,
|
26 | open: options.env.open === true,
|
27 | snippetOptions: {
|
28 | rule: { match: /$/, fn: append }
|
29 | },
|
30 | injectChanges: true,
|
31 | logFileChanges: false,
|
32 | logConnections: false,
|
33 | logSnippet: false,
|
34 | logLevel: 'info',
|
35 | logPrefix: ctime,
|
36 | ghostMode: false,
|
37 | watchTask: true,
|
38 | online: false,
|
39 | notify: true
|
40 | };
|
41 |
|
42 | if (options.proxy) {
|
43 | config.proxy = options.proxy;
|
44 | } else {
|
45 | config.server = {
|
46 | baseDir: options.paths.dest,
|
47 | directory: true
|
48 | };
|
49 | }
|
50 |
|
51 | return function(done) {
|
52 | browserSync(config, done);
|
53 | };
|
54 | };
|