forked from mjnottingham/digital-land
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
56 lines (47 loc) · 1.56 KB
/
gulpfile.js
File metadata and controls
56 lines (47 loc) · 1.56 KB
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
const gulp = require("gulp");
const sass = require("gulp-sass");
const sassLint = require('gulp-sass-lint');
const clean = require('gulp-clean');
// set paths ...
const config = {
scssPath: "src/scss",
destPath: "static/stylesheets",
assetPath: "static/govuk-frontend/assets"
}
// Delete our old css files
gulp.task('clean-css', function cleanCss () {
return gulp.src('static/stylesheets/**/*')
.pipe(clean());
});
// compile scss to CSS
gulp.task("scss", function compileSass () {
return gulp.src( config.scssPath + '/*.scss')
.pipe(sass({outputStyle: 'expanded',
includePaths: [ 'src/govuk_frontend_toolkit/stylesheets',
'src/govuk_template/assets/stylesheets',
'src/govuk_elements/assets/sass',
'src/govuk-frontend']})).on('error', sass.logError)
.pipe(gulp.dest(config.destPath));
});
// check .scss files against .sass-lint.yml config
const lintSCSS = () =>
gulp
.src('src/scss/**/*.s+(a|c)ss')
.pipe(sassLint({
files: {},
configFile: '.sass-lint.yml'
}))
.pipe(sassLint.format())
.pipe(sassLint.failOnError());
// Watch src folder for changes
gulp.task("watch", function watchAssets () {
gulp.watch("src/scss/**/*", gulp.series("scss"));
});
gulp.task("copy-assets", function copyAssets () {
return gulp.src('src/govuk-frontend/assets/**/*')
.pipe(gulp.dest(config.assetPath));
});
gulp.task("generate", gulp.series(lintSCSS, "clean-css", "copy-assets", "scss"));
// Set watch as default task
gulp.task("default", gulp.series("watch"));
exports.lintSCSS = lintSCSS;