gulpfile.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. 'use strict';
  2. var gulp = require('gulp'),
  3. pkg = require('./package.json'),
  4. paths = {
  5. dest: './dist',
  6. gulp: './gulpfile.js',
  7. src: './index.js',
  8. test: './test/*.{e2e,spec}.js'
  9. };
  10. gulp.task('default', ['build']);
  11. gulp.task('lint', function () {
  12. var eslint = require('gulp-eslint');
  13. return gulp
  14. .src([paths.gulp, paths.src, paths.test])
  15. .pipe(eslint())
  16. .pipe(eslint.format());
  17. });
  18. gulp.task('cover', function () {
  19. var istanbul = require('gulp-istanbul');
  20. return gulp
  21. .src(paths.src)
  22. .pipe(istanbul())
  23. .pipe(istanbul.hookRequire());
  24. });
  25. gulp.task('test', ['lint', 'cover'], function () {
  26. var istanbul = require('gulp-istanbul'),
  27. mocha = require('gulp-mocha');
  28. return gulp
  29. .src(paths.test)
  30. .pipe(mocha({ reporter: 'spec' }))
  31. .pipe(istanbul.writeReports());
  32. });
  33. gulp.task('build', ['test'], function () {
  34. var browserify = require('browserify'),
  35. source = require('vinyl-source-stream'),
  36. options = { standalone: 'handlebars-layouts' };
  37. return browserify(paths.src, options)
  38. .bundle()
  39. .pipe(source(pkg.name + '.js'))
  40. .pipe(gulp.dest(paths.dest));
  41. });