gulpfile.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. var coveralls = require('gulp-coveralls');
  2. var del = require('del');
  3. var gulp = require('gulp');
  4. var jshint = require('gulp-jshint');
  5. var karma = require('karma');
  6. var rename = require('gulp-rename');
  7. var runSequence = require('run-sequence');
  8. var sourcemaps = require('gulp-sourcemaps');
  9. var uglify = require('gulp-uglify');
  10. var sources = 'stackframe.js';
  11. var minified = sources.replace('.js', '.min.js');
  12. gulp.task('lint', function () {
  13. return gulp.src(sources)
  14. .pipe(jshint())
  15. .pipe(jshint.reporter('default'))
  16. .pipe(jshint.reporter('fail'));
  17. });
  18. gulp.task('test', function (done) {
  19. new karma.Server({
  20. configFile: __dirname + '/karma.conf.js',
  21. singleRun: true
  22. }, done).start();
  23. });
  24. gulp.task('test-ci', ['copy', 'dist'], function (done) {
  25. new karma.Server({
  26. configFile: __dirname + '/karma.conf.ci.js',
  27. singleRun: true
  28. }, done).start();
  29. });
  30. gulp.task('copy', function () {
  31. gulp.src(sources)
  32. .pipe(gulp.dest('dist'));
  33. });
  34. gulp.task('dist', ['copy'], function() {
  35. return gulp.src(sources)
  36. .pipe(sourcemaps.init())
  37. .pipe(uglify())
  38. .pipe(rename(minified))
  39. .pipe(sourcemaps.write('./'))
  40. .pipe(gulp.dest('dist'));
  41. });
  42. gulp.task('clean', del.bind(null, ['build', 'coverage', 'dist']));
  43. gulp.task('ci', ['lint', 'test-ci'], function () {
  44. gulp.src('./coverage/**/lcov.info')
  45. .pipe(coveralls());
  46. });
  47. gulp.task('default', ['clean'], function (cb) {
  48. runSequence('lint', ['copy', 'dist'], 'test', cb);
  49. });