Added robots file
[ghost-theme-work.git] / gulpfile.js
1 const {series, watch, src, dest, parallel} = require('gulp');
2 const pump = require('pump');
3
4 // gulp plugins and utils
5 var livereload = require('gulp-livereload');
6 var sass = require('gulp-sass')(require('sass'));
7 var zip = require('gulp-zip');
8 // var beeper = require('beeper');
9 const { beeper } = import('beeper');
10
11
12 function serve(done) {
13 livereload.listen();
14 done();
15 }
16
17 const handleError = (done) => {
18 return function (err) {
19 if (err) {
20 beeper();
21 }
22 return done(err);
23 };
24 };
25
26 sass.compiler = require('node-sass');
27
28 function hbs(done) {
29 pump([
30 src(['*.hbs', 'partials/**/*.hbs', '!node_modules/**/*.hbs']),
31 livereload()
32 ], handleError(done));
33 }
34
35 function css(done) {
36 pump([
37 src('./assets/main/sass/*.scss', {sourcemaps: true}),
38 sass({outputStyle: 'compressed'}).on('error', sass.logError),
39 dest('assets/main/css', {sourcemaps: './'}),
40 livereload()
41 ], handleError(done));
42 }
43
44 function zipper(done) {
45 var targetDir = 'dist/';
46 var themeName = require('./package.json').name;
47 var filename = themeName + '.zip';
48
49 pump([
50 src([
51 '**',
52 '!node_modules', '!node_modules/**',
53 '!dist', '!dist/**'
54 ]),
55 zip(filename),
56 dest(targetDir)
57 ], handleError(done));
58 }
59
60 const cssWatcher = () => watch('./assets/main/sass/**/**', css);
61 const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs', '!node_modules/**/*.hbs'], hbs);
62 const watcher = parallel(cssWatcher, hbsWatcher);
63 const build = series(css);
64 const dev = series(build, serve, watcher);
65
66 exports.build = build;
67 exports.zip = series(build, zipper);
68 exports.default = dev;