Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

134 строки
2.9 KiB

  1. 'use strict';
  2. var gulp = require('gulp');
  3. var es = require('event-stream');
  4. var clean = require('gulp-clean');
  5. var concat = require('gulp-concat');
  6. var uglify = require('gulp-uglify');
  7. var rename = require('gulp-rename');
  8. var less = require('gulp-less');
  9. var handlebars = require('gulp-handlebars');
  10. var wrap = require('gulp-wrap');
  11. var declare = require('gulp-declare');
  12. var watch = require('gulp-watch');
  13. var connect = require('gulp-connect');
  14. var header = require('gulp-header');
  15. var pkg = require('./package.json');
  16. var order = require('gulp-order');
  17. var banner = ['/**',
  18. ' * <%= pkg.name %> - <%= pkg.description %>',
  19. ' * @version v<%= pkg.version %>',
  20. ' * @link <%= pkg.homepage %>',
  21. ' * @license <%= pkg.license %>',
  22. ' */',
  23. ''].join('\n');
  24. /**
  25. * Clean ups ./dist folder
  26. */
  27. gulp.task('clean', function() {
  28. return gulp
  29. .src('./dist', {read: false})
  30. .pipe(clean({force: true}))
  31. .on('error', log);
  32. });
  33. /**
  34. * Processes Handlebars templates
  35. */
  36. function templates() {
  37. return gulp
  38. .src(['./src/main/template/**/*'])
  39. .pipe(handlebars())
  40. .pipe(wrap('Handlebars.template(<%= contents %>)'))
  41. .pipe(declare({
  42. namespace: 'Handlebars.templates',
  43. noRedeclare: true, // Avoid duplicate declarations
  44. }))
  45. .on('error', log);
  46. }
  47. /**
  48. * Build a distribution
  49. */
  50. gulp.task('dist', ['clean'], function() {
  51. return es.merge(
  52. gulp.src('./src/main/javascript/**/*.js'),
  53. templates()
  54. )
  55. .pipe(order(['scripts.js', 'templates.js']))
  56. .pipe(concat('swagger-ui.js'))
  57. .pipe(header(banner, { pkg: pkg } ))
  58. .pipe(gulp.dest('./dist'))
  59. .pipe(uglify())
  60. .on('error', log)
  61. .pipe(rename({extname: '.min.js'}))
  62. .on('error', log)
  63. .pipe(gulp.dest('./dist'))
  64. .pipe(connect.reload());
  65. });
  66. /**
  67. * Processes less files into CSS files
  68. */
  69. gulp.task('less', ['clean'], function() {
  70. return gulp
  71. .src([
  72. './src/main/less/screen.less',
  73. './src/main/less/print.less',
  74. './src/main/less/reset.less'
  75. ])
  76. .pipe(less())
  77. .on('error', log)
  78. .pipe(gulp.dest('./src/main/html/css/'))
  79. .pipe(connect.reload());
  80. });
  81. /**
  82. * Copy lib and html folders
  83. */
  84. gulp.task('copy', ['less'], function() {
  85. // copy JavaScript files inside lib folder
  86. gulp
  87. .src(['./lib/**/*.{js,map}'])
  88. .pipe(gulp.dest('./dist/lib'))
  89. .on('error', log);
  90. // copy all files inside html folder
  91. gulp
  92. .src(['./src/main/html/**/*'])
  93. .pipe(gulp.dest('./dist'))
  94. .on('error', log);
  95. });
  96. /**
  97. * Watch for changes and recompile
  98. */
  99. gulp.task('watch', function() {
  100. return watch(['./src/**/*.{coffee,js,less,handlebars}'], function() {
  101. gulp.start('default');
  102. });
  103. });
  104. /**
  105. * Live reload web server of `dist`
  106. */
  107. gulp.task('connect', function() {
  108. connect.server({
  109. root: 'dist',
  110. livereload: true
  111. });
  112. });
  113. function log(error) {
  114. console.error(error.toString && error.toString());
  115. }
  116. gulp.task('default', ['dist', 'copy']);
  117. gulp.task('serve', ['connect', 'watch']);