UNPKG

2.57 kBJavaScriptView Raw
1var gulp = require('gulp');
2
3var imageop = require('gulp-image-optimization');
4var less = require('gulp-less');
5var concat = require('gulp-concat');
6var LessPluginAutoPrefix = require('less-plugin-autoprefix'),
7 autoprefix = new LessPluginAutoPrefix({});
8var minifyCss = require('gulp-minify-css');
9
10var buffer = require('vinyl-buffer');
11var uglify = require('gulp-uglify');
12var browserify = require('browserify');
13var source = require('vinyl-source-stream');
14
15
16const blogJSON = require('./src/blog.config.json');
17const templateConfigJSON = require('./src/templates/' +
18 blogJSON['template'] + '/pp.config.json');
19
20const paths = {
21 src: './src',
22 dist: './dist',
23 images: ['./src/assets/imgs/*.png', './src/assets/imgs/*.jpg',
24 './src/assets/imgs/*.jpeg', './src/assets/imgs/*.gif'],
25 favicon: './src/assets/favicon/*.*',
26 js: './src/templates/' +
27 templateConfigJSON['name'] + '/' +
28 templateConfigJSON['build-path']['entry-js'],
29 styles: './src/templates/' +
30 templateConfigJSON['name'] + '/' +
31 templateConfigJSON['build-path']['entry-styles'],
32 libs: './src/templates/' +
33 templateConfigJSON['name'] + '/' +
34 templateConfigJSON['build-path']['libs']
35};
36
37
38gulp.task('imgs', function(cb) {
39 gulp.src(paths.images)
40 .pipe(imageop({
41 optimizationLevel: 3,
42 progressive: true,
43 interlaced: true
44 }))
45 .pipe(gulp.dest(paths.dist))
46 .on('end', cb)
47 .on('error', function(err) {
48 throw err;
49 });
50});
51
52gulp.task('favicon', function(cb) {
53 gulp.src(paths.favicon)
54 .pipe(gulp.dest(paths.dist + '/favicon'))
55 .on('end', cb)
56 .on('error', function(err) {
57 throw err;
58 });
59});
60
61gulp.task('js', function() {
62 return browserify(paths.js)
63 .bundle()
64 .pipe(source('main.js'))
65 .pipe(buffer())
66 .pipe(uglify())
67 .pipe(gulp.dest(paths.dist));
68});
69
70
71gulp.task('styles', function(cb) {
72 gulp.src(paths.styles)
73 .pipe(less({
74 plugins: [autoprefix]
75 }))
76 .pipe(concat('main.css'))
77 .pipe(minifyCss())
78 .pipe(gulp.dest(paths.dist))
79 .on('end', cb)
80 .on('error', function(err) {
81 throw err;
82 });
83});
84
85gulp.task('libs', function(cb) {
86 gulp.src(paths.libs)
87 .pipe(gulp.dest(paths.dist))
88 .on('end', cb)
89 .on('error', function(err) {
90 throw err;
91 });
92});
93
94gulp.task('default', ['imgs', 'favicon', 'js', 'styles', 'libs']);
\No newline at end of file