gulpfile.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*global require:true, console:true */
  2. var gulp = require('gulp');
  3. var nodemon = require('gulp-nodemon');
  4. var jshint = require('gulp-jshint');
  5. var uglify = require('gulp-uglify');
  6. var minifyHTML = require('gulp-minify-html');
  7. var minifycss = require('gulp-minify-css');
  8. var concat = require('gulp-concat');
  9. var del = require('del');
  10. var hintTask = function () {
  11. gulp.src(['*.js', './src/js/**/*.js'])
  12. .pipe(jshint('.jshintrc'))
  13. .pipe(jshint.reporter('jshint-stylish'));
  14. };
  15. gulp.task('hint', function() {
  16. hintTask();
  17. });
  18. var cleanTask = function () {
  19. console.log('CLEAN: Clean Complete');
  20. return del([
  21. 'app/**/*',
  22. '!app/img/',
  23. '!app/css/',
  24. '!app/fonts/',
  25. '!app/js/',
  26. ]);
  27. };
  28. gulp.task('clean', function() {
  29. cleanTask();
  30. });
  31. var buildTask = function() {
  32. gulp.src('./src/app.js')
  33. .pipe(gulp.dest('./app'));
  34. gulp.src('./src/index.html')
  35. .pipe(minifyHTML())
  36. .pipe(gulp.dest('./app'));
  37. gulp.src('./src/img/*')
  38. .pipe(gulp.dest('./app/img'));
  39. gulp.src(['./src/css/main.css'])
  40. .pipe(concat('style.min.css'))
  41. .pipe(minifycss())
  42. .pipe(gulp.dest('./app/css'));
  43. gulp.src([])
  44. .pipe(concat('vendor.min.js'))
  45. .pipe(uglify())
  46. .pipe(gulp.dest('./app/js'));
  47. gulp.src(['./src/js/script.js'])
  48. .pipe(concat('script.min.js'))
  49. .pipe(uglify())
  50. .pipe(gulp.dest('./app/js'));
  51. console.log('BUILD: Build Complete');
  52. };
  53. gulp.task('build', function() {
  54. buildTask();
  55. });
  56. var nodemonTask = function() {
  57. nodemon({
  58. tasks: ['watch'],
  59. script: 'app.js',
  60. verbose: true,
  61. env: { 'NODE_ENV': 'development' },
  62. watch: ['./src/'],
  63. ext: 'css js html'
  64. });
  65. };
  66. gulp.task('run', function () {
  67. nodemonTask();
  68. });