vmk-demo-bot / frontend / node_modules / bs-recipes / recipes / gulp.swig /
..
app init 18 days ago
.npmignore init 18 days ago
desc.md init 18 days ago
gulpfile.js init 18 days ago
package.json init 18 days ago
readme.md init 18 days ago
readme.md

#Browsersync - Gulp & Swig Templates

Installation/Usage:

To try this example, follow these 4 simple steps.

Step 1: Clone this entire repo

$ git clone https://github.com/Browsersync/recipes.git bs-recipes

Step 2: Move into the directory containing this example

$ cd bs-recipes/recipes/gulp.swig

Step 3: Install dependencies

$ npm install

Step 4: Run the example

$ npm start

Additional Info:

This example will build HTML files from ./app with gulp-swig and place them into the dist folder. Browsersync then serves from that folder and reloads after the templates are compiled.

Preview of gulpfile.js:

var gulp        = require('gulp');
var browserSync = require('browser-sync');
var sass        = require('gulp-sass');
var swig        = require('gulp-swig');
var reload      = browserSync.reload;

var src = {
    scss: 'app/scss/*.scss',
    css:  'app/css',
    html: 'app/*.html'
};

// Static Server + watching scss/html files
gulp.task('serve', ['sass'], function() {

    browserSync({
        server: "./dist"
    });

    gulp.watch(src.scss, ['sass']);
    gulp.watch(src.html, ['templates']);
});

// Swig templates
gulp.task('templates', function() {
    return gulp.src(src.html)
        .pipe(swig())
        .pipe(gulp.dest('./dist'))
        .on("end", reload);
});

// Compile sass into CSS
gulp.task('sass', function() {
    return gulp.src(src.scss)
        .pipe(sass())
        .pipe(gulp.dest(src.css))
        .pipe(reload({stream: true}));
});

gulp.task('default', ['serve']);