gulpfile.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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([
  35. './src/css/bootstrap.css',
  36. './src/css/font-awesome.css',
  37. './src/css/main.css'
  38. ])
  39. .pipe(concat('style.min.css'))
  40. .pipe(minifycss())
  41. .pipe(gulp.dest('./app/css'));
  42. gulp.src('./src/img/*')
  43. .pipe(gulp.dest('./app/img'));
  44. gulp.src('./src/fonts/*')
  45. .pipe(gulp.dest('./app/fonts'));
  46. gulp.src(['./src/js/jquery.js','./src/js/bootstrap.js'])
  47. .pipe(concat('lib.min.js'))
  48. .pipe(uglify())
  49. .pipe(gulp.dest('./app/js'));
  50. gulp.src(['./src/js/main.js'])
  51. .pipe(concat('main.min.js'))
  52. .pipe(uglify())
  53. .pipe(gulp.dest('./app/js'));
  54. gulp.src('./src/views/**/*')
  55. .pipe(gulp.dest('./app/views'));
  56. gulp.src('./src/models/**/*')
  57. .pipe(gulp.dest('./app/models'));
  58. gulp.src('./src/controllers/**/*')
  59. .pipe(gulp.dest('./app/controllers'));
  60. console.log('BUILD: Build Complete');
  61. };
  62. gulp.task('build', function() {
  63. buildTask();
  64. });
  65. var watchTask = function() {
  66. gulp.src([
  67. './src/css/bootstrap.css',
  68. './src/css/font-awesome.css',
  69. './src/css/main.css'
  70. ])
  71. .pipe(concat('style.min.css'))
  72. .pipe(minifycss())
  73. .pipe(gulp.dest('./app/css'));
  74. gulp.src(['./src/js/main.js'])
  75. .pipe(concat('main.min.js'))
  76. .pipe(uglify())
  77. .pipe(gulp.dest('./app/js'));
  78. gulp.src('./src/views/**/*')
  79. //.pipe(uglify())
  80. .pipe(gulp.dest('./app/views'));
  81. gulp.src('./src/models/**/*')
  82. //.pipe(uglify())
  83. .pipe(gulp.dest('./app/models'));
  84. gulp.src('./src/controllers/**/*')
  85. //.pipe(uglify())
  86. .pipe(gulp.dest('./app/controllers'));
  87. console.log('WATCH: Watch Complete');
  88. };
  89. gulp.task('watch', function() {
  90. watchTask();
  91. });
  92. var nodemonTask = function() {
  93. nodemon({
  94. tasks: ['watch'],
  95. script: 'app.js',
  96. verbose: true,
  97. env: { 'NODE_ENV': 'development' },
  98. watch: ['./src/'],
  99. ext: 'css js html hbs'
  100. });
  101. };
  102. gulp.task('run', function () {
  103. nodemonTask();
  104. });