You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
var gulp = require('gulp'); |
|
var browserSync = require('browser-sync'); |
|
var filter = require('gulp-filter'); |
|
var sass = require('gulp-ruby-sass'); |
|
var sourcemaps = require('gulp-sourcemaps'); |
|
var reload = browserSync.reload; |
|
|
|
var src = { |
|
scss: 'app/scss/*.scss', |
|
css: 'app/css', |
|
html: 'app/*.html' |
|
}; |
|
|
|
/** |
|
* Kick off the sass stream with source maps + error handling |
|
*/ |
|
function sassStream () { |
|
return sass('app/scss', {sourcemap: true}) |
|
.on('error', function (err) { |
|
console.error('Error!', err.message); |
|
}) |
|
.pipe(sourcemaps.write('./', { |
|
includeContent: false, |
|
sourceRoot: '/app/scss' |
|
})); |
|
} |
|
|
|
/** |
|
* Start the Browsersync Static Server + Watch files |
|
*/ |
|
gulp.task('serve', ['sass'], function() { |
|
|
|
browserSync({ |
|
server: "./app" |
|
}); |
|
|
|
gulp.watch(src.scss, ['sass']); |
|
gulp.watch(src.html).on('change', reload); |
|
}); |
|
|
|
/** |
|
* Compile sass, filter the results, inject CSS into all browsers |
|
*/ |
|
gulp.task('sass', function() { |
|
return sassStream() |
|
.pipe(gulp.dest(src.css)) |
|
.pipe(filter("**/*.css")) |
|
.pipe(reload({stream: true})); |
|
}); |
|
|
|
/** |
|
* Default task |
|
*/ |
|
gulp.task('default', ['serve']); |