gulpfile.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. var gulp = require('gulp');
  2. var nodemon = require('gulp-nodemon');
  3. var jshint = require('gulp-jshint');
  4. var uglify = require('gulp-uglify');
  5. var minifyHTML = require('gulp-minify-html');
  6. var minifycss = require('gulp-minify-css');
  7. var concat = require('gulp-concat');
  8. var del = require('del');
  9. var hintTask = function() {
  10. gulp.src(['*.js', './src/js/**/*.js'])
  11. .pipe(jshint('.jshintrc'))
  12. .pipe(jshint.reporter('jshint-stylish'));
  13. };
  14. gulp.task('hint', function() {
  15. hintTask();
  16. });
  17. var cleanTask = function() {
  18. console.log('CLEAN: Clean Complete');
  19. return del([
  20. 'app/**/*',
  21. '!app/img/',
  22. '!app/css/',
  23. '!app/fonts/',
  24. '!app/js/',
  25. '!app/views/',
  26. '!app/models/',
  27. '!app/controllers/'
  28. ]);
  29. };
  30. gulp.task('clean', function() {
  31. cleanTask();
  32. });
  33. var buildTask = function() {
  34. gulp.src('./src/index.html')
  35. .pipe(minifyHTML())
  36. .pipe(gulp.dest('./app'));
  37. gulp.src(['./src/css/bootstrap.css','./src/css/main.css'])
  38. .pipe(concat('style.min.css'))
  39. .pipe(minifycss())
  40. .pipe(gulp.dest('./app/css'));
  41. gulp.src('./src/img/*')
  42. .pipe(gulp.dest('./app/img'));
  43. gulp.src('./src/fonts/*')
  44. .pipe(gulp.dest('./app/fonts'));
  45. gulp.src(['./src/js/jquery.js','./src/js/bootstrap.js'])
  46. .pipe(concat('lib.min.js'))
  47. .pipe(uglify())
  48. .pipe(gulp.dest('./app/js'));
  49. gulp.src(['./src/js/main.js'])
  50. .pipe(concat('main.min.js'))
  51. .pipe(uglify())
  52. .pipe(gulp.dest('./app/js'));
  53. gulp.src('./src/views/**/*')
  54. .pipe(gulp.dest('./app/views'));
  55. gulp.src('./src/models/**/*')
  56. .pipe(gulp.dest('./app/models'));
  57. gulp.src('./src/controllers/**/*')
  58. .pipe(gulp.dest('./app/controllers'));
  59. console.log('BUILD: Build Complete');
  60. };
  61. gulp.task('build', function() {
  62. buildTask();
  63. });
  64. var watchTask = function() {
  65. gulp.src('./src/index.html')
  66. .pipe(minifyHTML())
  67. .pipe(gulp.dest('./app'));
  68. gulp.src(['./src/css/bootstrap.css', './src/css/main.css'])
  69. .pipe(concat('style.min.css'))
  70. .pipe(minifycss())
  71. .pipe(gulp.dest('./app/css'));
  72. gulp.src(['./src/js/main.js'])
  73. .pipe(concat('main.min.js'))
  74. .pipe(uglify())
  75. .pipe(gulp.dest('./app/js'));
  76. gulp.src('./src/views/**/*')
  77. //.pipe(uglify())
  78. .pipe(gulp.dest('./app/views'));
  79. gulp.src('./src/models/**/*')
  80. //.pipe(uglify())
  81. .pipe(gulp.dest('./app/models'));
  82. gulp.src('./src/controllers/**/*')
  83. //.pipe(uglify())
  84. .pipe(gulp.dest('./app/controllers'));
  85. console.log('WATCH: Watch Complete');
  86. };
  87. gulp.task('watch', function() {
  88. watchTask();
  89. });
  90. var nodemonTask = function() {
  91. nodemon({
  92. tasks: ['watch'],
  93. script: 'app.js',
  94. verbose: true,
  95. env: { 'NODE_ENV': 'development' },
  96. watch: ['./src/'],
  97. ext: 'css js html hbs'
  98. });
  99. };
  100. gulp.task('run', function () {
  101. nodemonTask();
  102. });