1 var gulp = require('gulp');
2 var gulpif = require('gulp-if');
3 var clean = require('gulp-clean');
4 var order = require('gulp-order');
5 var rename = require('gulp-rename');
6 var concat = require('gulp-concat');
7 var jshint = require('gulp-jshint');
8 var uglify = require('gulp-uglify');
9 var stylish = require('jshint-stylish');
10 var livereload = require('gulp-livereload');
11 var sourcemaps = require('gulp-sourcemaps');
12 var flags = require('minimist')(process.argv.slice(2));
14 // Gulp command line arguments
15 var production = flags.production || false;
16 var debug = flags.debug || !production;
17 var watch = flags.watch;
19 gulp.task('build', ['clean'], function() {
20 // Single entry point to browserify
21 gulp.src(['src/*.js', 'vendor/*.js'])
22 .pipe(order([ // The order of concatenation
25 .pipe(gulpif(debug, sourcemaps.init()))
26 .pipe(gulpif(production, uglify()))
27 .pipe(concat('iotjs.js'))
28 .pipe(gulpif(debug, sourcemaps.write()))
29 .pipe(gulp.dest('./build/'))
30 .pipe(gulpif(watch, livereload()));
33 gulp.task('lint', function() {
34 return gulp.src('src/*.js')
36 .pipe(jshint.reporter(stylish))
39 gulp.task('clean', function() {
40 return gulp.src(['./build'], {read: false})
41 .pipe(clean({force: true}));
44 gulp.task('watch', function() {
46 gulp.watch('src/*', ['lint', 'build']);
49 gulp.task('default', ['clean', 'lint', 'build']);