12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * grunt-browser-sync
- * https://github.com/BrowserSync/grunt-browser-sync
- *
- * Copyright (c) 2015 Shane Osbourne
- * Licensed under the MIT license.
- */
- 'use strict';
- module.exports = function (grunt) {
- var bs = require("browser-sync").create("Grunt");
- grunt.registerMultiTask("browserSync", "Keep your browsers in sync", function () {
- var done = this.async();
- var options = this.options({
- keepalive: true
- });
- var patterns;
- if (this.data && this.data.bsFiles && this.data.bsFiles.src) {
- patterns = this.data.bsFiles.src;
- if (typeof patterns === "string") {
- patterns = [patterns];
- }
- }
- if (!patterns) {
- if (this.data.src) {
- patterns = this.data.src;
- if (typeof this.data.src === "string") {
- patterns = [this.data.src];
- }
- }
- }
- if (!patterns) {
- if (this.filesSrc.length) {
- patterns = this.filesSrc;
- }
- }
- bs.init(patterns || [], options, function (err) {
- if (err) {
- done(err);
- return;
- }
- if (options.watchTask ||
- options.watchtask ||
- options.background ||
- !options.keepalive) {
- done();
- }
- });
- });
- grunt.registerMultiTask("bsReload", function () {
- if (bs && bs.active) {
- bs.reload(this.data.reload);
- }
- });
- grunt.registerMultiTask("bsNotify", function () {
- if (bs && bs.active) {
- bs.notify(this.data.notify, this.data.timeout);
- }
- });
- };
|