25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

170 satır
4.0 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 wrap = require('gulp-wrap');
  10. var watch = require('gulp-watch');
  11. var connect = require('gulp-connect');
  12. var header = require('gulp-header');
  13. var order = require('gulp-order');
  14. var jshint = require('gulp-jshint');
  15. var pkg = require('./package.json');
  16. var banner = ['/**',
  17. ' * <%= pkg.name %> - <%= pkg.description %>',
  18. ' * @version v<%= pkg.version %>',
  19. ' * @link <%= pkg.homepage %>',
  20. ' * @license <%= pkg.license %>',
  21. ' */',
  22. ''].join('\n');
  23. /**
  24. * Clean ups ./dist folder
  25. */
  26. gulp.task('clean', function() {
  27. return gulp
  28. .src('./dist', {read: false})
  29. .pipe(clean({force: true}))
  30. .on('error', log);
  31. });
  32. /**
  33. * JShint all *.js files
  34. */
  35. gulp.task('lint', function () {
  36. return gulp.src('./src/main/javascript/**/*.js')
  37. .pipe(jshint())
  38. .pipe(jshint.reporter('jshint-stylish'));
  39. });
  40. /**
  41. * Build a distribution
  42. */
  43. gulp.task('dist', ['clean', 'lint'], _dist);
  44. function _dist() {
  45. return es.merge(
  46. gulp.src([
  47. './node_modules/es5-shim/es5-shim.js',
  48. './lib/sanitize-html.min.js',
  49. './src/main/javascript/**/*.js',
  50. './node_modules/swagger-client/browser/swagger-client.js'
  51. ]),
  52. gulp
  53. .src(['./src/main/template/templates.js'])
  54. .on('error', log)
  55. )
  56. .pipe(order(['scripts.js', 'templates.js']))
  57. .pipe(concat('swagger-ui.js'))
  58. .pipe(wrap('(function(){<%= contents %>}).call(this);'))
  59. .pipe(header(banner, { pkg: pkg }))
  60. .pipe(gulp.dest('./dist'))
  61. .pipe(uglify())
  62. .on('error', log)
  63. .pipe(rename({extname: '.min.js'}))
  64. .on('error', log)
  65. .pipe(gulp.dest('./dist'))
  66. .pipe(connect.reload());
  67. }
  68. gulp.task('dev-dist', ['lint', 'dev-copy'], _dist);
  69. /**
  70. * Processes less files into CSS files
  71. */
  72. gulp.task('less', ['clean'], _less);
  73. function _less() {
  74. return gulp
  75. .src([
  76. './src/main/less/screen.less',
  77. './src/main/less/print.less',
  78. './src/main/less/reset.less',
  79. './src/main/less/style.less'
  80. ])
  81. .pipe(less())
  82. .on('error', function(err){ log(err); this.emit('end');})
  83. .pipe(gulp.dest('./src/main/html/css/'))
  84. .pipe(connect.reload());
  85. }
  86. gulp.task('dev-less', _less);
  87. /**
  88. * Copy lib and html folders
  89. */
  90. gulp.task('copy', ['less'], _copy);
  91. function _copy() {
  92. // copy JavaScript files inside lib folder
  93. gulp
  94. .src(['./lib/**/*.{js,map}',
  95. './node_modules/es5-shim/es5-shim.js'
  96. ])
  97. .pipe(gulp.dest('./dist/lib'))
  98. .on('error', log);
  99. // copy `lang` for translations
  100. gulp
  101. .src(['./lang/**/*.js'])
  102. .pipe(gulp.dest('./dist/lang'))
  103. .on('error', log);
  104. // copy all files inside html folder
  105. gulp
  106. .src(['./src/main/html/**/*'])
  107. .pipe(gulp.dest('./dist'))
  108. .on('error', log);
  109. }
  110. gulp.task('dev-copy', ['dev-less', 'copy-local-specs'], _copy);
  111. gulp.task('copy-local-specs', function () {
  112. // copy the test specs
  113. return gulp
  114. .src(['./test/specs/**/*'])
  115. .pipe(gulp.dest('./dist/specs'))
  116. .on('error', log);
  117. });
  118. /**
  119. * Watch for changes and recompile
  120. */
  121. gulp.task('watch', ['copy-local-specs'], function() {
  122. return watch([
  123. './src/**/*.{js,less,handlebars}',
  124. './src/main/html/*.html',
  125. './test/specs/**/*.{json,yaml}'
  126. ],
  127. function() {
  128. gulp.start('dev-dist');
  129. });
  130. });
  131. /**
  132. * Live reload web server of `dist`
  133. */
  134. gulp.task('connect', function() {
  135. connect.server({
  136. root: 'dist',
  137. livereload: true
  138. });
  139. });
  140. function log(error) {
  141. console.error(error.toString && error.toString());
  142. }
  143. gulp.task('handlebars', function () {
  144. gulp
  145. .src(['./src/main/template/templates.js'])
  146. .pipe(wrap('/* jshint ignore:start */ \n {<%= contents %>} \n /* jshint ignore:end */'))
  147. .pipe(gulp.dest('./src/main/template/'))
  148. .on('error', log);
  149. });
  150. gulp.task('default', ['dist', 'copy']);
  151. gulp.task('serve', ['connect', 'watch']);
  152. gulp.task('dev', ['default'], function () {
  153. gulp.start('serve');
  154. });