Gulpfile.js 2.9 KB

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