Gulpfile.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. '../common/*.js',
  20. 'src/js/**/*.js'
  21. ],
  22. styles: [
  23. 'temp/css/*'
  24. ],
  25. less: [
  26. // '../common/*.less',
  27. 'src/less/*.less'
  28. ],
  29. imgs: [
  30. 'src/imgs/*'
  31. ],
  32. template: [
  33. 'src/templates/*.html'
  34. ]
  35. }
  36. }
  37. var distpath = '../dist/userview';
  38. gulp.task('app-css', function() {
  39. del([distpath + '/app-*.css'],{cwd:process.cwd(),force:true});
  40. return gulp.src(paths.frontend.less)
  41. .pipe(less())
  42. .pipe(concat('app.css'))
  43. .pipe(minifycss())
  44. .pipe(rev())
  45. .pipe(gulp.dest(distpath))
  46. .pipe(rev.manifest('app-css-manifest.json'))
  47. .pipe(gulp.dest('temp/manifest'));
  48. });
  49. gulp.task('rev', ['app-css','js'], function() {
  50. return gulp.src(['temp/manifest/*.json', 'src/html/index.html'])
  51. .pipe(revCollector())
  52. .pipe(gulp.dest(distpath));
  53. });
  54. gulp.task('template', function() {
  55. return gulp.src(paths.frontend.template)
  56. .pipe(templateCache('templates.js', { module:'templatescache', standalone:true, root: 'templates/' }))
  57. .pipe(gulp.dest('src/js'));
  58. });
  59. gulp.task('js', ['template'], function() {
  60. // Cleanup old assets
  61. del([distpath + '/app-*.js'], {cwd:process.cwd(),force:true});
  62. return gulp.src(paths.frontend.scripts)
  63. .pipe(concat('app.js'))
  64. .pipe(minifyjs())
  65. .pipe(rev())
  66. .pipe(gulp.dest(distpath))
  67. .pipe(rev.manifest('app-js-manifest.json'))
  68. .pipe(gulp.dest('temp/manifest'));
  69. });
  70. // gulp.task('imgs', function () {
  71. // return gulp.src(paths.frontend.imgs)
  72. // .pipe(imagemin({
  73. // progressive: true,
  74. // svgoPlugins: [{removeViewBox: false}],
  75. // use: [pngquant()]
  76. // }))
  77. // .pipe(gulp.dest('dest/assets/imgs'));
  78. // });
  79. gulp.task('build', ['app-css', 'template', 'js', 'rev']);
  80. gulp.task('watch', function(){
  81. gulp.watch('src/less/*.less', ['app-css', 'rev']);
  82. gulp.watch('src/html/**/*.html', ['rev']);
  83. gulp.watch('src/templates/**/*.html', ['template', 'js', 'rev']);
  84. gulp.watch('src/js/**/*.js', ['js', 'rev']);
  85. });
  86. // The default task (called when you run `gulp` from cli)
  87. gulp.task('default', ['build', 'watch']);