1 | var gulp = require("gulp");
|
2 | var gutil = require('gulp-util');
|
3 | var clean = require('gulp-clean');
|
4 | var watch = require('gulp-watch');
|
5 |
|
6 | var mocha = require('gulp-mocha');
|
7 | var coffee = require('gulp-coffee');
|
8 | var uglify = require('gulp-uglify');
|
9 | var browserify = require('browserify');
|
10 | var sourcemaps = require('gulp-sourcemaps');
|
11 | var source = require('vinyl-source-stream');
|
12 | var buffer = require('vinyl-buffer');
|
13 |
|
14 | require('coffee-script/register');
|
15 |
|
16 | gulp.task('clean', function () {
|
17 | gulp.src('lib', {read: false})
|
18 | .pipe(clean());
|
19 | });
|
20 |
|
21 | gulp.task('coffee', function () {
|
22 | return gulp.src('./src/**/*.coffee')
|
23 | .pipe(coffee({ bare: true }).on('error', gutil.log))
|
24 | .pipe(gulp.dest('./lib/'));
|
25 | });
|
26 |
|
27 | gulp.task('build', ['coffee'], function() {
|
28 | return browserify('./lib/browser')
|
29 | .bundle()
|
30 | .pipe(source('youbase.min.js'))
|
31 | .pipe(buffer())
|
32 | .pipe(sourcemaps.init({loadMaps: true}))
|
33 | .pipe(uglify())
|
34 | .on('error', gutil.log)
|
35 | .pipe(sourcemaps.write('./'))
|
36 | .pipe(gulp.dest('dist'));
|
37 | });
|
38 |
|
39 | gulp.task('test', ['coffee'], function () {
|
40 | return gulp.src('./test/**/*.coffee', { read: false })
|
41 | .pipe(mocha({ reporter: 'spec' }))
|
42 | .on('error', gutil.log);
|
43 | });
|
44 |
|
45 | gulp.task('default', ['coffee']);
|
46 |
|
47 | gulp.task('watch-coffee', function () {
|
48 | gulp.src('./src/**/*.coffee')
|
49 | .pipe(watch('./src/**/*.coffee'))
|
50 | .pipe(coffee({ bare: true }).on('error', gutil.log))
|
51 | .pipe(gulp.dest('./lib/'));
|
52 | });
|
53 |
|
54 | gulp.task('watch-test', function () {
|
55 | gulp.watch(['test/**', 'src/**'], ['test']);
|
56 | });
|
57 |
|
58 | gulp.task('watch', ['watch-test']);
|