fission
Version:
The Reactjs Toolkit
70 lines (59 loc) • 1.59 kB
JavaScript
;
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var sourcemaps = require('gulp-sourcemaps');
var autowatch = require('gulp-autowatch');
var open = require('gulp-open');
var mocha = require('gulp-mocha');
var jshint = require('gulp-jshint');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var browserify = require('browserify');
var paths = {
js: 'lib/**/*.js',
jsSrc: './index.js',
test: 'test/main.js'
};
var bCache = {};
gulp.task('watch', function() {
autowatch(gulp, paths);
});
gulp.task('test', function() {
var b = browserify('./test/main.js', {
standalone: 'fission',
debug: true,
insertGlobals: true,
cache: bCache
});
return b.bundle()
.pipe(source('main.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sourcemaps.write())
.pipe(gulp.dest('test/browser'));
});
gulp.task('test:browser', ['test'], function() {
return gulp.src('./test/browser/index.html').pipe(open());
});
gulp.task('js', function() {
return gulp.src(paths.js)
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
gulp.task('amd', function() {
var b = browserify(paths.jsSrc, {
standalone: 'fission',
debug: true,
insertGlobals: true,
cache: bCache
});
return b.bundle()
.pipe(source('fission.js'))
.pipe(buffer())
.pipe(gulp.dest('dist'))
.pipe(uglify())
.pipe(rename('fission.min.js'))
.pipe(gulp.dest('dist'));
});
gulp.task('default', ['js', 'test', 'amd', 'watch']);