-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
60 lines (54 loc) · 1.63 KB
/
gulpfile.js
File metadata and controls
60 lines (54 loc) · 1.63 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
57
58
59
60
import gulp from 'gulp';
import { deleteSync } from 'del';
import gulpSass from 'gulp-sass';
import cssnano from 'gulp-cssnano';
import concat from 'gulp-concat';
import autoprefixer from 'gulp-autoprefixer';
import connect from 'gulp-connect';
import * as sassCompiler from 'sass';
import open from 'gulp-open';
const sass = gulpSass(sassCompiler);
const port = 8082;
const uri = `http://localhost:${port}/`;
// Remove the CSS file
gulp.task("clean-css", (done) => {
deleteSync(["./css/main.css"]);
done();
});
// Compiles SCSS files to CSS
gulp.task('style', gulp.series("clean-css", function convertSassToCss() {
return gulp.src('**/*.scss', { cwd: './src' })
.pipe(concat('main.scss'))
.pipe(sass().on('error', function sassError(err) {
console.log("SASS ERROR: " + err.message);
}))
.pipe(cssnano())
.pipe(autoprefixer())
.pipe(gulp.dest('./css'))
.pipe(connect.reload()); // Reload the server when CSS changes
}));
// Local webserver
gulp.task('webserver', (done) => {
connect.server({
root: './',
livereload: true,
fallback: 'index.html',
port: port
// Doesn't support open anymore. so livereload doesn't really work when we open in the browser. TODO find alternative
});
done();
});
// Open browser
gulp.task('open-browser', (done) => {
gulp.src('index.html')
.pipe(open({ uri }));
done();
});
// Default task
gulp.task('default', gulp.series('style', 'webserver', 'open-browser', (done) => {
// Watch Sass files
gulp.watch("**/*.scss", { cwd: "./src/" }, gulp.series("style"));
// Watch HTML files
gulp.watch('**/*.html').on('change', () => connect.reload());
done();
}));