12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 'use strict';
- var gulp = require('gulp');
- var jshint = require('gulp-jshint');
- var exec = require('gulp-exec');
- var stylish = require('jshint-stylish');
- var browserify = require('gulp-browserify');
- var uglify = require('gulp-uglify');
- var rename = require('gulp-rename');
- var karma = require('karma');
- var coveralls = require('gulp-coveralls');
- var istanbul = require('gulp-istanbul');
- var mocha = require('gulp-mocha');
- var paths = {
- index: './index.js',
- tests: './test/**/*.js'
- };
- function preTest(src) {
- return gulp.src(src)
- .pipe(istanbul())
- .pipe(istanbul.hookRequire());
- }
- function test(src){
- return gulp.src(src)
- .pipe(mocha())
- .pipe(istanbul.writeReports());
- }
- function testKarma(done){
- new karma.Server({
- configFile: __dirname + '/karma.conf.js',
- singleRun: true
- }, done).start();
- }
- function lint(src){
- return gulp.src(src)
- .pipe(jshint('.jshintrc'))
- .pipe(jshint.reporter(stylish));
- }
- gulp.task('dist', function(){
- gulp.src([paths.index])
- .pipe(browserify({
- insertGlobals : true,
- debug: true,
- standalone: 'objectHash'
- }))
- .pipe(rename('object_hash.js'))
- .pipe(uglify({outSourceMap: true}))
- .pipe(gulp.dest('./dist'));
- // tests
- gulp.src([paths.tests])
- .pipe(browserify())
- .pipe(rename('object_hash_test.js'))
- .pipe(gulp.dest('./dist'));
- });
- gulp.task('pre-test', function() {
- preTest([paths.index]);
- });
- gulp.task('test', ['pre-test'], function() {
- test([paths.tests]);
- });
- gulp.task('karma', function() {
- testKarma();
- });
- gulp.task('coveralls', function() {
- gulp.src('coverage/**/lcov.info')
- .pipe(coveralls());
- });
- gulp.task('lint', function () {
- return lint([paths.index]);
- });
- gulp.task('watch', function () {
- // watch and lint any files that are added or changed
- gulp.watch([paths.index, paths.tests], function(event){
- if(event.type !== 'deleted') {
- lint([event.path]);
- }
- });
- // run the tests when something changes
- gulp.watch([paths.index, paths.tests], ['test', 'karma']);
- });
- gulp.task('default', ['watch']);
|