var gulp = require('gulp') var eslint = require('gulp-eslint') gulp.task('lint', function() { return gulp.src(['src/**', 'demo/app.js', 'demo/components/*.jsx']) // eslint() attaches the lint output to the eslint property // of the file object so it can be used by other modules. .pipe(eslint()) // eslint.format() outputs the lint results to the console. // Alternatively use eslint.formatEach() (see Docs). .pipe(eslint.format()) // To have the process exit with an error code (1) on // lint error, return the stream and pipe to failOnError last. .pipe(eslint.failOnError()) }) // Demo related tasks var flatten = require('gulp-flatten') var stream = require('vinyl-source-stream') var buffer = require('vinyl-buffer') var browserify = require('browserify') var watchify = require('watchify') var babelify = require('babelify') var browserSync = require('browser-sync').create() var reload = browserSync.reload function bundleJs(bundler) { return bundler.bundle() .pipe(stream('demo/app.js')) .pipe(buffer()) .pipe(flatten()) .pipe(gulp.dest('demo/assets')) } gulp.task('demo:bundle', function() { return bundleJs(browserify('./demo/app.js', {debug: true}) // Append a source map .transform(babelify)) }) gulp.task('demo:bundleAndWatch', function() { var bundler = watchify(browserify('./demo/app.js', Object.assign({debug: true}, watchify.args))) .transform(babelify) bundler.on('update', bundleJs.bind(null, bundler)) return bundleJs(bundler) }) gulp.task('demo', ['demo:bundleAndWatch'], function() { browserSync.init({ port: 3010, browser: ['google chrome'], open: false, notify: false, server: { baseDir: "demo/assets" } }) // Watch JavaScript and lint changes gulp.watch(['src/**', 'demo/app.js', 'demo/components/*.jsx'], ['lint']) // Reload when the app CSS or bundled JS changes gulp.watch('demo/assets/*.css').on('change', reload) gulp.watch('demo/assets/app.js').on('change', reload) }) // gh-pages related tasks gulp.task('gh-pages', ['demo:bundle'], function() { require('del').sync(['gh-pages/**/*.*', '!gh-pages', '!gh-pages/.git']) return gulp.src('demo/assets/**/*.*') .pipe(gulp.dest('gh-pages')) })