3 var gulp = require('gulp');
4 var eslint = require('gulp-eslint');
5 var gulpIf = require('gulp-if');
6 var rename = require('gulp-rename');
7 var uglify = require('gulp-uglify');
9 // Assets for the project
11 main: './jquery-scrollspy.js',
12 minified: './jquery-scrollspy.min.js',
13 package: './package.json',
14 readme: './README.md',
18 // See the uglify documentation for more details
19 var _uglifySettings = {
32 // Check the main js file(s) meets the following standards outlined in .eslintrc
33 gulp.task('eslint', function esLintTask() {
34 // Has ESLint fixed the file contents?
35 function isFixed(file) {
36 return file.eslint !== undefined && file.eslint !== null && file.eslint.fixed;
39 return gulp.src(Assets.main)
42 useEslintrc: '.eslintrc',
44 .pipe(eslint.format())
45 .pipe(gulpIf(isFixed, gulp.dest(Assets.source)));
48 // Uglify aka minify the main file
49 gulp.task('uglify', function uglifyTask() {
50 return gulp.src(Assets.main)
51 .pipe(uglify(_uglifySettings))
52 .pipe(rename(Assets.minified))
53 .pipe(gulp.dest(Assets.source));
56 // Watch for changes to the main file
57 gulp.task('watch', function watchTask() {
58 gulp.watch(Assets.main, ['eslint', 'uglify']);
61 // Register the default task
62 gulp.task('default', ['eslint', 'uglify']);
64 // 'gulp eslint' to check the syntax of the main js file(s)
65 // 'gulp uglify' to uglify the main file