-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
77 lines (67 loc) · 2.45 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
'use strict';
const gulp = require('gulp');
const stylus = require('gulp-stylus');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const browserSync = require('browser-sync').create();
const cssnano = require('cssnano');
const postcss = require('gulp-postcss');
const mergeStream = require('merge-stream');
function buildCss() {
const stylusStream = gulp.src('src/stylus/index.styl').pipe(stylus());
const cssStream = gulp.src('node_modules/prismjs/themes/prism-okaidia.css');
let plugins = [
cssnano({
autoprefixer: {
browsers: ['last 2 versions'],
},
}),
];
return mergeStream(cssStream, stylusStream)
.pipe(postcss(plugins))
.pipe(concat('blog.css'))
.pipe(gulp.dest('assets/'));
}
function buildJs() {
let jsFiles = [
'node_modules/prismjs/prism.js',
'node_modules/prismjs/components/prism-bash.js',
'node_modules/prismjs/components/prism-clike.js',
'node_modules/prismjs/components/prism-css.js',
'node_modules/prismjs/components/prism-css-extras.js',
'node_modules/prismjs/components/prism-git.js',
'node_modules/prismjs/components/prism-javascript.js',
'node_modules/prismjs/components/prism-json.js',
'node_modules/prismjs/components/prism-js-extras.js',
'node_modules/prismjs/components/prism-js-templates.js',
'node_modules/prismjs/components/prism-jsx.js',
'node_modules/prismjs/components/prism-markdown.js',
'node_modules/prismjs/components/prism-markup.js',
'node_modules/prismjs/components/prism-nginx.js',
'node_modules/prismjs/components/prism-php.js',
'node_modules/prismjs/components/prism-php-extras.js',
'node_modules/prismjs/components/prism-stylus.js',
'node_modules/prismjs/components/prism-markup-templating.js',
'src/js/*.js',
];
return gulp.src(jsFiles)
.pipe(concat('blog.js'))
.pipe(uglify())
.pipe(gulp.dest('assets/'));
}
function reload(done) {
browserSync.reload();
done();
}
function sync() {
browserSync.init({
proxy: 'http://ghost:2368',
open: false,
});
}
function watch() {
gulp.watch('**/*.hbs', reload);
gulp.watch('src/stylus/**/*.styl', gulp.series(buildCss, reload));
gulp.watch('src/js/**/*.js', gulp.series(buildJs, reload));
}
exports.default = gulp.parallel(buildCss, buildJs, watch, sync);