1 | var gulp = require('gulp');
|
2 | var clean = require('gulp-rimraf');
|
3 | var jshint = require('gulp-jshint');
|
4 | var concat = require('gulp-concat');
|
5 | var uglify = require('gulp-uglify');
|
6 | var ngmin = require('gulp-ng-annotate');
|
7 | var sourcemaps = require('gulp-sourcemaps');
|
8 |
|
9 | var karma = require('karma').server;
|
10 | var karmaConfPath = './test/karma.conf.js';
|
11 | var karmaConf = require(karmaConfPath);
|
12 |
|
13 | var sources = [
|
14 | 'src/module.js',
|
15 | 'src/helpers.js',
|
16 | 'src/services/request-animation.js',
|
17 | 'src/services/spy-api.js',
|
18 | 'src/services/scroll-container-api.js',
|
19 | 'src/directives/smooth-scroll.js',
|
20 | 'src/directives/spy-context.js',
|
21 | 'src/directives/scroll-container.js',
|
22 | 'src/directives/scrollspy.js'
|
23 | ];
|
24 |
|
25 | var targets = 'angular-scroll.{js,min.js,min.js.map}';
|
26 |
|
27 | gulp.task('clean', function() {
|
28 | gulp.src(targets)
|
29 | .pipe(clean());
|
30 | });
|
31 |
|
32 | gulp.task('lint', function() {
|
33 | gulp.src(sources)
|
34 | .pipe(jshint())
|
35 | .pipe(jshint.reporter('default'));
|
36 | });
|
37 |
|
38 | gulp.task('karma', function(done) {
|
39 | karma.start({configFile: __dirname + '/test/karma.conf.js', singleRun: true}, done);
|
40 | });
|
41 |
|
42 | gulp.task('compress', function() {
|
43 |
|
44 | gulp.src(sources)
|
45 | .pipe(concat('angular-scroll.js', { newLine: '\n\n' }))
|
46 | .pipe(ngmin())
|
47 | .pipe(gulp.dest('./'));
|
48 |
|
49 |
|
50 | gulp.src(sources)
|
51 | .pipe(sourcemaps.init())
|
52 | .pipe(concat('angular-scroll.min.js', { newLine: '\n\n' }))
|
53 | .pipe(ngmin())
|
54 | .pipe(uglify())
|
55 | .pipe(sourcemaps.write('./'))
|
56 | .pipe(gulp.dest('./'));
|
57 | });
|
58 |
|
59 | gulp.task('build', ['clean', 'compress']);
|
60 | gulp.task('test', ['lint', 'karma']);
|
61 | gulp.task('default', ['test', 'build']);
|