-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathgulpfile.js
91 lines (81 loc) · 2.93 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
var gulp = require('gulp'),
sass = require('gulp-sass'),
sourcemaps = require('gulp-sourcemaps'),
prefix = require('gulp-autoprefixer'),
sassLint = require('gulp-sass-lint');
var concat = require('gulp-concat');
var minify = require('gulp-minify-css');
var merge = require('merge-stream');
var shell = require('gulp-shell');
var sassGlob = require('gulp-sass-glob');
// Directories for storing sass and css files
// var sassFiles = ['source/_patterns/**/*.scss','source/scss/scss.scss'];
var sassFiles = ['source/**/*.scss'];
var patternFiles = [
'source/**/*.twig',
];
var cssDir = 'source/css';
var jsDir = 'source/js/*.js';
// Gulp-sass options. Log errors to console and compile expanded css
var sassOptions = {
errLogToConsole: true,
outputStyle: 'compressed' // Change to 'compressed' for production files
};
// Set up sass linting task
gulp.task('lint-sass', gulp.series(function () {
return gulp.src(sassFiles)
.pipe(sassLint({
rules: {
// 'class-name-format': 0
},
files: {
ignore: 'sass/**/breakpoint/**.scss'
}
}))
.pipe(sassLint.format())
.pipe(sassLint.failOnError());
}));
gulp.task('sass', gulp.series(function () {
return gulp.src(sassFiles)
//.pipe(sourcemaps.init())
.pipe(sassGlob())
.pipe(sass({
outputStyle: 'compressed',
// This includes paths for susy, typey and breakpoint. So we can add import their variables
// directly from Sass stylesheets.
includePaths: [
'node_modules/susy/sass',
'node_modules/breakpoint-sass/stylesheets',
'node_modules/typey/stylesheets'
]
}).on('error', sass.logError))
.pipe(prefix({
browsers: ['last 2 versions'],
cascade: false
}))
//.pipe(sourcemaps.write())
.pipe(concat('style.css'))
//.pipe(minify())
.pipe(gulp.dest(cssDir));
}));
// Start the pattern lab server and watch for changes
gulp.task('patternlab', shell.task('php core/console --generate'));
// Export patternlab changes
gulp.task('export-patternlab', shell.task('php core/console --export'));
// Keep an eye on Sass files for changes and only lint changed files
// This prevents Sass error reporting from contributes Sass files from other projects
// Also speeds things up.
gulp.task('watch', function () {
// gulp.watch(sassFiles, function(ev) {
// if (ev.type === 'added' || ev.type === 'changed') {
// lintFile(ev.path);
// }
// });
gulp.watch(sassFiles.concat(patternFiles), gulp.series('sass','patternlab', 'export-patternlab'));
});
function lintFile(file) {
gulp.src(file)
.pipe(sassLint())
.pipe(sassLint.format());
}
gulp.task('default', gulp.series(['export-patternlab', 'patternlab', 'sass', 'watch'], function (){}));