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('gulp-karma');
|
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('test', function() {
|
39 | return gulp.src(karmaConf.testFiles)
|
40 | .pipe(karma({
|
41 | configFile: karmaConfPath,
|
42 | action: 'run'
|
43 | }))
|
44 | .on('error', function(err) {
|
45 | throw err;
|
46 | });
|
47 | });
|
48 |
|
49 | gulp.task('compress', function() {
|
50 |
|
51 | gulp.src(sources)
|
52 | .pipe(concat('angular-scroll.js', { newLine: '\n\n' }))
|
53 | .pipe(ngmin())
|
54 | .pipe(gulp.dest('./'));
|
55 |
|
56 |
|
57 | gulp.src(sources)
|
58 | .pipe(sourcemaps.init())
|
59 | .pipe(concat('angular-scroll.min.js', { newLine: '\n\n' }))
|
60 | .pipe(ngmin())
|
61 | .pipe(uglify())
|
62 | .pipe(sourcemaps.write('./'))
|
63 | .pipe(gulp.dest('./'));
|
64 | });
|
65 |
|
66 | gulp.task('default', ['lint', 'test', 'clean', 'compress']);
|