gulpfile.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. var gulp = require('gulp');
  2. var gp = require('gulp-load-plugins')();
  3. var streamqueue = require('streamqueue');
  4. var open = require('open');
  5. gulp.task('watch', ['server'], function() {
  6. gp.livereload.listen();
  7. gulp.watch(['./index.html', './docs/**', './src/**']).on('change', gp.livereload.changed);
  8. });
  9. gulp.task('server', function() {
  10. gp.connect.server({
  11. root: ['./'],
  12. port: 8000,
  13. livereload: false
  14. });
  15. open('http://localhost:8000');
  16. });
  17. gulp.task('css', function() {
  18. return gulp.src('src/**/*.css')
  19. .pipe(gp.sourcemaps.init())
  20. .pipe(gp.concat('angular-bootstrap-calendar.css'))
  21. .pipe(gulp.dest('dist/css'))
  22. .pipe(gp.minifyCss())
  23. .pipe(gp.rename('angular-bootstrap-calendar.min.css'))
  24. .pipe(gp.sourcemaps.write('.'))
  25. .pipe(gulp.dest('dist/css'));
  26. });
  27. function getTemplates() {
  28. return gulp
  29. .src('templates/**/*.html')
  30. .pipe(gp.minifyHtml({empty: true, conditionals: true, spare: true, quotes: true}))
  31. .pipe(gp.angularTemplatecache({standalone: false, module: 'mwl.calendar', root: 'templates/'}));
  32. }
  33. function mergeStreams(stream1, stream2) {
  34. return streamqueue({ objectMode: true }, stream1, stream2);
  35. }
  36. function buildJS(withTemplates) {
  37. var minFilename = withTemplates ? 'angular-bootstrap-calendar-tpls.min.js' : 'angular-bootstrap-calendar.min.js';
  38. var unminfilename = withTemplates ? 'angular-bootstrap-calendar-tpls.js' : 'angular-bootstrap-calendar.js';
  39. var stream = withTemplates ? mergeStreams(
  40. gulp.src('src/**/*.js'),
  41. getTemplates()
  42. ) : gulp.src('src/**/*.js');
  43. return stream
  44. .pipe(gp.angularFilesort())
  45. .pipe(gp.sourcemaps.init())
  46. .pipe(gp.ngAnnotate())
  47. .pipe(gp.concat(unminfilename))
  48. .pipe(gulp.dest('dist/js'))
  49. .pipe(gp.uglify())
  50. .pipe(gp.rename(minFilename))
  51. .pipe(gp.sourcemaps.write('.'))
  52. .pipe(gulp.dest('dist/js'));
  53. }
  54. gulp.task('js-tpls', function() {
  55. return buildJS(true);
  56. });
  57. gulp.task('js', ['js-tpls'], function() {
  58. return buildJS();
  59. });
  60. gulp.task('build', ['js', 'css'], function() {});
  61. gulp.task('default', ['build'], function() {});