Files
Node.js-14-Cookbook/Chapter08/web-server-hardening/koa-app/gulpfile.js
T
2017-07-31 11:33:31 +05:30

67 lines
1.5 KiB
JavaScript

var gulp = require('gulp')
var nodemon = require('gulp-nodemon')
var sourcemaps = require('gulp-sourcemaps')
var concat = require('gulp-concat')
var uglify = require('gulp-uglify')
var cssmin = require('gulp-cssmin')
var del = require('del')
var path = require('path')
var client = {
js: {
src: 'client/js',
dest: 'public/js'
},
css: {
src: 'client/css',
dest: 'public/css'
}
}
gulp.task('default', ['jsmin', 'cssmin', 'start'])
gulp.task('start', function () {
nodemon({
script: 'bin/www',
ext: 'js css ejs',
ignore: ['public', 'logs'],
tasks: function (files) {
var tasks = []
files.forEach(function (file) {
if (path.relative(client.js.src, file).substr(0, 2) !== '..'
&& !~tasks.indexOf('jsmin')) {
tasks.push('jsmin')
}
if (path.relative(client.css.src, file).substr(0, 2) !== '..'
&& !~tasks.indexOf('cssmin')) {
tasks.push('cssmin')
}
})
return tasks
}
})
})
gulp.task('cleanjs', function () {
return del([client.js.dest])
})
gulp.task('cleancss', function () {
return del([client.css.dest])
})
gulp.task('jsmin', ['cleanjs'], function () {
return gulp.src(client.js.src + '/**/*.js')
.pipe(sourcemaps.init())
.pipe(concat('graph.js'))
.pipe(uglify())
.pipe(gulp.dest(client.js.dest))
})
gulp.task('cssmin', ['cleancss'], function () {
return gulp.src(client.css.src + '/**/*.css')
.pipe(concat('style.css'))
.pipe(cssmin())
.pipe(gulp.dest(client.css.dest))
})