-
Notifications
You must be signed in to change notification settings - Fork 1
/
gulpfile.js
53 lines (48 loc) · 1.86 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Requires Gulp v4.
// $ npm uninstall --global gulp gulp-cli
// $ rm /usr/local/share/man/man1/gulp.1
// $ npm install --global gulp-cli
// $ npm install
const {src, dest, watch, series, parallel} = require('gulp');
const sass = require('gulp-sass');
const autoprefixer = require('gulp-autoprefixer');
const sourcemaps = require('gulp-sourcemaps');
const plumber = require('gulp-plumber');
const sasslint = require('gulp-sass-lint');
const cache = require('gulp-cached');
const notify = require("gulp-notify");
// npm install -save browsersync gulp-sass gulp-autoprefixer gulp-sourcemaps gulp-plumber gulp-sass-lint gulp-cached
// Compile CSS from Sass.
function buildStyles() {
return src( 'assets/scss/*.scss', 'assets/scss/**/*.scss' )
.pipe( plumber() )
.pipe( sourcemaps.init({loadMaps: false}) )
.pipe( sass({outputStyle: 'compressed'}) )
.pipe( autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7']) )
.pipe( sourcemaps.write(false) )
.pipe( dest('../biasa') )
.pipe( notify( { message: '\n\n✅ SCSS file successfully compiled\n', onLast: true } ) );
}
// Watch changes on all *.scss files and trigger buildStyles() at the end.
function watchFiles() {
watch(
['assets/scss/*.scss', 'assets/scss/**/*.scss'],
{events: 'all', ignoreInitial: false},
series(buildStyles)
);
}
// Init Sass linter.
function sassLint() {
return src( ['assets/scss/*.scss', 'assets/scss/**/*.scss'] )
.pipe( cache('sasslint') )
.pipe( sasslint({
configFile: '.sass-lint.yml'
} ))
.pipe( sasslint.format() )
.pipe( sasslint.failOnError() );
}
// Export commands.
exports.default = parallel( sassLint, watchFiles ); // $ gulp
exports.sass = buildStyles; // $ gulp sass
exports.watch = watchFiles; // $ gulp watch
exports.build = series(buildStyles); // $ gulp build