Files
30-seconds-of-code/node_modules/react-css-transition-replace/gulpfile.js
2019-08-20 15:52:05 +02:00

77 lines
2.2 KiB
JavaScript

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'))
})