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.

48 lines
1.4 KiB
JavaScript

9 years ago
'use strict';
var gulp = require('gulp');
var browserSync = require('browser-sync');
var $ = require('gulp-load-plugins')();
module.exports = function(options) {
gulp.task('styles', function () {
var sassOptions = {
style: 'expanded'
};
var injectFiles = gulp.src([
options.src + '/{app,components}/**/*.scss',
'!' + options.src + '/app/index.scss',
'!' + options.src + '/app/vendor.scss'
], { read: false });
var injectOptions = {
transform: function(filePath) {
filePath = filePath.replace(options.src + '/app/', '');
filePath = filePath.replace(options.src + '/components/', '../components/');
return '@import \'' + filePath + '\';';
},
starttag: '// injector',
endtag: '// endinjector',
addRootSlash: false
};
var indexFilter = $.filter('index.scss');
return gulp.src([
options.src + '/app/index.scss',
options.src + '/app/vendor.scss'
])
.pipe(indexFilter)
.pipe($.inject(injectFiles, injectOptions))
.pipe(indexFilter.restore())
.pipe($.sourcemaps.init())
.pipe($.sass(sassOptions)).on('error', options.errorHandler('Sass'))
.pipe($.autoprefixer()).on('error', options.errorHandler('Autoprefixer'))
.pipe($.sourcemaps.write())
.pipe(gulp.dest(options.tmp + '/serve/app/'))
.pipe(browserSync.reload({ stream: true }));
});
};