JD2022-TU1/data/EngineData/JustDanceTools/gulpfile.js

101 lines
2.5 KiB
JavaScript

var gulp = require("gulp");
var browserify = require('browserify');
var watchify = require('watchify');
var coffeeify = require('coffeeify');
var hbfs = require('hbsfy');
var buffer = require('vinyl-buffer');
var source = require('vinyl-source-stream');
var livereload = require('gulp-livereload');
var sourcemaps = require('gulp-sourcemaps');
var streamify = require('gulp-streamify');
var uglify = require('gulp-uglify');
var debowerify = require('debowerify');
var runSequence = require('run-sequence');
var less = require('gulp-less');
function buildScript( file ) {
var bundler = browserify({
entries: ['./app/' + file],
debug: true,
cache: {},
packageCache: {},
extensions: ['.coffee'],
noParse: [],
base: true,
builtins: [],
insertGlobals: true,
detectGlobals: false,
});
bundler = watchify(bundler);
bundler.on('update', rebundle);
bundler.transform('coffeeify', {
});
bundler.transform('hbsfy', {
});
bundler.transform('debowerify', {
});
function rebundle ( ) {
var stream = bundler.bundle();
return stream
.on('error', function ( err ) {
console.log( err );
} )
.on('end', function ( ) {
console.log( "Ending the build" );
} )
.pipe(source('main.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
// .pipe(streamify(uglify({
// compress: {drop_console: false}
// })))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./js'))
.pipe(livereload());
}
return rebundle();
}
gulp.task('browserify', function ( ) {
livereload.listen();
return buildScript('main.coffee');
} )
gulp.task('styles', function () {
return gulp.src('./app/styles/main.less')
.pipe(sourcemaps.init())
.pipe(less())
.on('error', function ( err ) {
console.log(err);
})
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./css'))
.pipe(livereload());
});
gulp.task('watch', function ( ) {
global.isWatching = true;
// Scripts are automatically watched and rebundled by Watchify inside Browserify task
gulp.watch('./app/styles/**/*.less', ['styles']);
// gulp.watch(config.views.watch, ['views']);
});
gulp.task('default', function(cb) {
global.isProd = false;
livereload.listen();
runSequence(['styles', /* 'images', 'fonts', */], 'browserify', 'watch', cb);
});