Skip to content
Snippets Groups Projects
gulpfile.babel.js 1.59 KiB
Newer Older
const gulp = require('gulp');
const babel = require('gulp-babel');
const eslint = require('gulp-eslint');

const mocha = require('gulp-mocha');

const nodemon = require('gulp-nodemon');

const Cache = require('gulp-file-cache');

const cache = new Cache();
/**
 * Compile source files
 */
function compile() {
    // run ESLint
    gulp.src('src/**/*.js')
        .pipe(eslint())
        .pipe(eslint.format());

    // compile source to ES5
    gulp.src('src/**/*.js')
        .pipe(cache.filter())       // cache source files
        .pipe(babel())      // compile only modified files
        .pipe(cache.cache())        // cache compiled files
        .pipe(gulp.dest('build'));  // move compiled files to build directory

    // copy configuration file to build directory
    gulp.src('config.json')
        .pipe(gulp.dest('build'));

}

gulp.task('build', compile);

gulp.task('test', () => {
  gulp.src('test/test.js', {read: false})
    .pipe(mocha())
    .once('error', () => {
    .once('end', () => {

gulp.task('watch', [], () => {
    console.log('Watching source directory for changes');
    gulp.watch('src/**/*.js').on('change', () => {
        console.log('Recompiling source');
        compile();
        console.log('Source recompilation done')
    });
gulp.task('run', () => {
Lucas Gabriel Lima's avatar
Lucas Gabriel Lima committed
  nodemon({
    script: 'server.js',
    ignore: ["test/test.js", "gulpfile.babel.js"],
    ext: 'js html json',
Lucas Gabriel Lima's avatar
Lucas Gabriel Lima committed
    env: { 'NODE_ENV': 'development' }
gulp.task('default', ['run']);