all files / lib/gulp/tasks/ js.js

52.38% Statements 11/21
0% Branches 0/2
0% Functions 0/10
52.38% Lines 11/21
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                                                                                                         
'use strict';
 
var
  gulp = require('gulp'),
  del = require('del'),
  quasarPipes = require('../pipes/quasar-pipes')
  ;
 
gulp.task('js:lint', function() {
  return gulp.src(gulp._.config.js.all)
    .pipe(gulp._.plugins.pipes.js.lint());
});
 
function compile(production) {
  return gulp.src(gulp._.config.js.tmp.src, {base: gulp._.config.js.tmp.dest})
    .pipe(gulp._.plugins.pipes.js.compile({
      prod: production,
      pack: gulp._.config.webpack,
      retainPath: true
    }))
    .pipe(gulp.dest(gulp._.config.js.dest));
}
 
function processJS(done, production) {
  gulp._.sequence(
    ['js:lint', 'js:copy'],
    'js:manifest',
    'js:compile:' + (production ? 'prod' : 'dev'),
    'js:clean',
    done
  );
}
 
gulp.task('dev:js', function(done) {
  processJS(done, false);
});
 
gulp.task('prod:js', function(done) {
  processJS(done, true);
});
 
gulp.task('js:compile:dev', function() {
  return compile(false);
});
gulp.task('js:compile:prod', function() {
  return compile(true);
});
 
gulp.task('js:copy', function() {
  return gulp.src(gulp._.config.js.src, {base: gulp._.config.base})
    .pipe(gulp.dest(gulp._.config.js.tmp.dest));
});
 
gulp.task('js:clean', function() {
  del.sync(gulp._.config.js.tmp.dest);
});
 
 
gulp.task('js:manifest', function() {
  return gulp.src(gulp._.config.js.tmp.pages, {base: gulp._.config.js.tmp.dest})
    .pipe(quasarPipes.pageCompiler())
    .pipe(gulp.dest(gulp._.config.js.tmp.dest));
});