Gulpfile.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. var gulp = require('gulp');
  2. // var sass = require('gulp-sass');
  3. var less = require('gulp-less');
  4. var del = require('del');
  5. var concat = require('gulp-concat');
  6. var rev = require('gulp-rev');
  7. var revCollector = require('gulp-rev-collector');
  8. var minifycss = require('gulp-minify-css');
  9. var minifyhtml = require('gulp-minify-html');
  10. var minifyjs = require('gulp-uglify');
  11. var autoprefixer = require('gulp-autoprefixer');
  12. // var imagemin = require('gulp-imagemin');
  13. // var pngquant = require('imagemin-pngquant');
  14. var templateCache = require('gulp-angular-templatecache');
  15. // Paths to your asset files
  16. var paths = {
  17. frontend: {
  18. scripts: [
  19. 'src/js/**/*.js'
  20. ],
  21. styles: [
  22. 'temp/css/*'
  23. ],
  24. less: [
  25. 'src/less/*.less'
  26. ],
  27. imgs: [
  28. 'src/imgs/*'
  29. ],
  30. template: [
  31. 'src/templates/*.html'
  32. ]
  33. }
  34. }
  35. gulp.task('app-css', function() {
  36. del(['dest/css/app-*.css'], function (err) {});
  37. return gulp.src(paths.frontend.less)
  38. .pipe(less())
  39. .pipe(concat('app.css'))
  40. // .pipe(minifycss())
  41. .pipe(rev())
  42. .pipe(gulp.dest('dest/css'))
  43. .pipe(rev.manifest('app-css-manifest.json'))
  44. .pipe(gulp.dest('temp/manifest'));
  45. });
  46. gulp.task('rev', ['app-css','js'], function() {
  47. return gulp.src(['temp/manifest/*.json', 'src/html/index.html'])
  48. .pipe(revCollector())
  49. .pipe(gulp.dest('dest'));
  50. });
  51. gulp.task('template', function() {
  52. return gulp.src(paths.frontend.template)
  53. .pipe(templateCache('templates.js', { module:'templatescache', standalone:true, root: 'templates/' }))
  54. .pipe(gulp.dest('src/js'));
  55. });
  56. gulp.task('js', ['template'], function() {
  57. // Cleanup old assets
  58. del(['dest/js/app-*.js'], function (err) {});
  59. return gulp.src(paths.frontend.scripts)
  60. .pipe(concat('app.js'))
  61. // .pipe(minifyjs())
  62. .pipe(rev())
  63. .pipe(gulp.dest('dest/js'))
  64. .pipe(rev.manifest('app-js-manifest.json'))
  65. .pipe(gulp.dest('temp/manifest'));
  66. });
  67. // gulp.task('imgs', function () {
  68. // return gulp.src(paths.frontend.imgs)
  69. // .pipe(imagemin({
  70. // progressive: true,
  71. // svgoPlugins: [{removeViewBox: false}],
  72. // use: [pngquant()]
  73. // }))
  74. // .pipe(gulp.dest('dest/assets/imgs'));
  75. // });
  76. gulp.task('build', ['app-css', 'template', 'js', 'rev']);
  77. gulp.task('watch', function(){
  78. gulp.watch('src/less/*.less', ['app-css', 'rev']);
  79. gulp.watch('src/html/**/*.html', ['rev']);
  80. gulp.watch('src/templates/**/*.html', ['template', 'js', 'rev']);
  81. gulp.watch('src/js/**/*.js', ['js', 'rev']);
  82. });
  83. // The default task (called when you run `gulp` from cli)
  84. gulp.task('default', ['build', 'watch']);