Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

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