gulpfile.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. '!app/views/',
  27. ]);
  28. };
  29. gulp.task('clean', function() {
  30. cleanTask();
  31. });
  32. var buildTask = function() {
  33. gulp.src('./src/app.js')
  34. .pipe(gulp.dest('./app'));
  35. gulp.src('./src/index.html')
  36. .pipe(minifyHTML())
  37. .pipe(gulp.dest('./app'));
  38. gulp.src('./src/views/**/*')
  39. .pipe(gulp.dest('./app/views'));
  40. gulp.src('./src/views/layouts/*')
  41. .pipe(gulp.dest('./app/views/layouts'));
  42. gulp.src('./src/img/*')
  43. .pipe(gulp.dest('./app/img'));
  44. gulp.src(['./src/css/bootstrap.css','./src/css/main.css'])
  45. .pipe(concat('style.min.css'))
  46. .pipe(minifycss())
  47. .pipe(gulp.dest('./app/css'));
  48. gulp.src(['./src/js/jquery.js','./src/js/bootstrap.js'])
  49. .pipe(concat('lib.min.js'))
  50. .pipe(uglify())
  51. .pipe(gulp.dest('./app/js'));
  52. gulp.src(['./src/js/main.js'])
  53. .pipe(concat('main.min.js'))
  54. .pipe(uglify())
  55. .pipe(gulp.dest('./app/js'));
  56. console.log('\033[31m BUILD: Build Complete');
  57. };
  58. gulp.task('build', function() {
  59. buildTask();
  60. });
  61. var watchTask = function() {
  62. gulp.src('./app.js')
  63. .pipe(gulp.dest('./'));
  64. gulp.src('./src/views/*')
  65. .pipe(gulp.dest('./app/views'));
  66. gulp.src('./src/index.html')
  67. .pipe(minifyHTML())
  68. .pipe(gulp.dest('./app'));
  69. gulp.src(['./src/css/bootstrap.css', './src/css/main.css'])
  70. .pipe(concat('style.min.css'))
  71. .pipe(minifycss())
  72. .pipe(gulp.dest('./app/css'));
  73. gulp.src(['./src/js/main.js'])
  74. .pipe(concat('main.min.js'))
  75. .pipe(uglify())
  76. .pipe(gulp.dest('./app/js'));
  77. console.log('\033[31m WATCH: Watch Complete');
  78. };
  79. gulp.task('watch', function() {
  80. watchTask();
  81. });
  82. var nodemonTask = function() {
  83. nodemon({
  84. tasks: ['watch'],
  85. script: 'app.js',
  86. verbose: true,
  87. env: { 'NODE_ENV': 'development' },
  88. watch: ['./src/'],
  89. ext: 'css js html'
  90. });
  91. };
  92. gulp.task('run', function () {
  93. nodemonTask();
  94. });