|
3 | 3 | var gulp = require('gulp');
|
4 | 4 | var rename = require('gulp-rename');
|
5 | 5 |
|
6 |
| -gulp.task('lint', function() { |
| 6 | +function lint(cb) { |
7 | 7 | var jshint = require('gulp-jshint');
|
8 | 8 |
|
9 |
| - gulp.src('./**/*.js') |
| 9 | + return gulp.src('./**/*.js') |
10 | 10 | .pipe(jshint())
|
11 | 11 | .pipe(jshint.reporter('default'));
|
12 |
| -}); |
| 12 | +} |
| 13 | +gulp.task(lint); |
13 | 14 |
|
14 |
| -gulp.task('browserify', function() { |
| 15 | +function browserify(cb) { |
15 | 16 | var browserify = require('browserify');
|
16 | 17 | var source = require('vinyl-source-stream');
|
17 | 18 |
|
18 | 19 | return browserify('./public/javascript/room.js')
|
19 | 20 | .bundle()
|
20 | 21 | .pipe(source('room.bundle.js'))
|
21 | 22 | .pipe(gulp.dest('./public/javascript/'));
|
22 |
| -}); |
| 23 | +} |
| 24 | +gulp.task(browserify); |
23 | 25 |
|
24 |
| -gulp.task('minify-css', function() { |
| 26 | +function minifyCss() { |
25 | 27 | var minifyCss = require('gulp-minify-css');
|
26 | 28 |
|
27 | 29 | return gulp.src(['!./**/*.min.css', 'public/stylesheet/**/*.css'])
|
28 | 30 | .pipe(minifyCss({compatibility: 'ie8'}))
|
29 | 31 | .pipe(rename({suffix: '.min'}))
|
30 | 32 | .pipe(gulp.dest('public/stylesheet'));
|
31 |
| -}); |
| 33 | +} |
| 34 | +gulp.task(minifyCss); |
32 | 35 |
|
33 |
| -gulp.task('minify-js', ['browserify'], function() { |
| 36 | +function minifyJs() { |
34 | 37 | var uglify = require('gulp-uglify');
|
35 | 38 |
|
36 | 39 | return gulp.src(['!./**/*.min.js', './public/javascript/*.js'])
|
37 | 40 | .pipe(uglify())
|
38 | 41 | .pipe(rename({suffix: '.min'}))
|
39 | 42 | .pipe(gulp.dest('./public/javascript/'));
|
40 |
| -}); |
| 43 | +} |
| 44 | +gulp.task('minifyJs', gulp.series(browserify, minifyJs)); |
41 | 45 |
|
42 |
| -gulp.task('start', ['lint', 'browserify'], function() { |
| 46 | +function start() { |
43 | 47 | var nodemon = require('gulp-nodemon');
|
44 |
| - |
45 |
| - nodemon({ |
46 |
| - script: 'app.js', |
47 |
| - ext: 'js', |
48 |
| - tasks: ['lint', 'browserify'], |
49 |
| - ignore: ['*.bundle.js', '*.min.js'], |
50 |
| - env: {'NODE_ENV': 'development'} |
51 |
| - }); |
52 |
| -}); |
53 |
| - |
54 |
| -gulp.task('build:development', ['lint', 'browserify']); |
55 |
| -gulp.task('build:production', ['minify-css', 'minify-js']); |
56 |
| - |
57 |
| -gulp.task('default', ['start']); |
| 48 | + nodemon({ |
| 49 | + script: 'app.js', |
| 50 | + ext: 'js', |
| 51 | + tasks: ['lint', 'browserify'], |
| 52 | + ignore: ['*.bundle.js', '*.min.js'], |
| 53 | + env: {'NODE_ENV': 'development'} |
| 54 | + }); |
| 55 | +} |
| 56 | +gulp.task('start', gulp.series(lint, browserify, start)); |
| 57 | + |
| 58 | +gulp.task('build:development', gulp.series(lint, browserify)); |
| 59 | +gulp.task('build:production', gulp.parallel(minifyCss, minifyJs)); |
| 60 | + |
| 61 | +gulp.task('default', start); |
0 commit comments