gulpfile.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. var pkg = require('./package.json');
  2. var banner = '/**\n' +
  3. ' * <%= pkg.description %>\n' +
  4. ' * @version v<%= pkg.version %>\n' +
  5. ' * @link <%= pkg.homepage %>\n' +
  6. ' * @author <%= pkg.author %>\n' +
  7. ' * @license MIT License, http://www.opensource.org/licenses/MIT\n' +
  8. ' */\n\n';
  9. var gulp = require('gulp'),
  10. karma = require('karma').server,
  11. jshint = require('gulp-jshint'),
  12. concat = require('gulp-concat'),
  13. uglify = require('gulp-uglify'),
  14. rename = require('gulp-rename'),
  15. sass = require('gulp-sass');
  16. autoprefixer = require('gulp-autoprefixer'),
  17. minifycss = require('gulp-minify-css'),
  18. header = require('gulp-header');
  19. gulp.task('scripts', function() {
  20. gulp.src([
  21. 'src/vAccordion/vAccordion.prefix',
  22. 'src/vAccordion/*.js',
  23. 'src/vAccordion/directives/*.js',
  24. 'src/vAccordion/services/*.js',
  25. 'src/vAccordion/vAccordion.suffix'
  26. ])
  27. .pipe(concat('v-accordion.js'))
  28. .pipe(header(banner, { pkg : pkg } ))
  29. .pipe(gulp.dest('./dist/'))
  30. .pipe(uglify())
  31. .pipe(rename('v-accordion.min.js'))
  32. .pipe(header(banner, { pkg : pkg } ))
  33. .pipe(gulp.dest('./dist'))
  34. });
  35. gulp.task('styles', function() {
  36. return gulp.src('src/vAccordion/styles/v-accordion.scss')
  37. .pipe(sass({style: 'expanded'}))
  38. .pipe(autoprefixer('last 2 version'))
  39. .pipe(header(banner, { pkg : pkg } ))
  40. .pipe(gulp.dest('dist/'))
  41. .pipe(rename({suffix: '.min'} ))
  42. .pipe(minifycss())
  43. .pipe(header(banner, { pkg : pkg } ))
  44. .pipe(gulp.dest('dist/'))
  45. });
  46. gulp.task('test', function (done) {
  47. karma.start({
  48. configFile: __dirname + '/karma.conf.js',
  49. singleRun: true
  50. }, done);
  51. });
  52. gulp.task('lint-src', function() {
  53. return gulp.src([
  54. 'src/vAccordion/**/*.js',
  55. ])
  56. .pipe(jshint('.jshintrc'))
  57. .pipe(jshint.reporter('jshint-stylish'));
  58. });
  59. gulp.task('lint-tests', function() {
  60. return gulp.src([
  61. 'test/**/*Spec.js'
  62. ])
  63. .pipe(jshint('.jshintrc'))
  64. .pipe(jshint.reporter('jshint-stylish'));
  65. });
  66. gulp.task('default', ['lint-src', 'test', 'scripts', 'styles']);
  67. gulp.task('watch', function() {
  68. gulp.watch('src/vAccordion/**/*.js', ['lint-src', 'scripts']);
  69. gulp.watch('test/**/*.spec.js', ['lint-tests', 'test']);
  70. gulp.watch('src/vAccordion/styles/**/*.scss', ['styles']);
  71. });