71 lines
1.6 KiB
JavaScript
71 lines
1.6 KiB
JavaScript
'use strict'
|
|
|
|
// ===================================================================
|
|
|
|
var gulp = require('gulp')
|
|
|
|
var babel = require('gulp-babel')
|
|
var coffee = require('gulp-coffee')
|
|
var plumber = require('gulp-plumber')
|
|
var rimraf = require('rimraf')
|
|
var sourceMaps = require('gulp-sourcemaps')
|
|
var watch = require('gulp-watch')
|
|
|
|
var join = require('path').join
|
|
|
|
// ===================================================================
|
|
|
|
var SRC_DIR = join(__dirname, 'src')
|
|
var DIST_DIR = join(__dirname, 'dist')
|
|
|
|
var PRODUCTION = process.argv.indexOf('--production') !== -1
|
|
|
|
// ===================================================================
|
|
|
|
function src (patterns) {
|
|
return PRODUCTION
|
|
? gulp.src(patterns, {
|
|
base: SRC_DIR,
|
|
cwd: SRC_DIR
|
|
})
|
|
: watch(patterns, {
|
|
base: SRC_DIR,
|
|
cwd: SRC_DIR,
|
|
ignoreInitial: false,
|
|
verbose: true
|
|
})
|
|
.pipe(plumber())
|
|
}
|
|
|
|
// ===================================================================
|
|
|
|
gulp.task(function clean (cb) {
|
|
rimraf(DIST_DIR, cb)
|
|
})
|
|
|
|
gulp.task(function buildCoffee () {
|
|
return src('**/*.coffee')
|
|
.pipe(sourceMaps.init())
|
|
.pipe(coffee({
|
|
bare: true
|
|
}))
|
|
|
|
// Necessary to correctly compile generators.
|
|
.pipe(babel())
|
|
|
|
.pipe(sourceMaps.write('.'))
|
|
.pipe(gulp.dest(DIST_DIR))
|
|
})
|
|
|
|
gulp.task(function buildEs6 () {
|
|
return src('**/*.js')
|
|
.pipe(sourceMaps.init())
|
|
.pipe(babel())
|
|
.pipe(sourceMaps.write('.'))
|
|
.pipe(gulp.dest(DIST_DIR))
|
|
})
|
|
|
|
// ===================================================================
|
|
|
|
gulp.task('build', gulp.series('clean', gulp.parallel('buildCoffee', 'buildEs6')))
|