85 lines
2.5 KiB
JavaScript
Executable File
85 lines
2.5 KiB
JavaScript
Executable File
const gulp = require('gulp');
|
|
const concat = require('gulp-concat');
|
|
const uglify = require('gulp-uglify');
|
|
const babel = require('gulp-babel');
|
|
const template = require('gulp-template');
|
|
const yargs = require('yargs');
|
|
const Haxe = require('../tasks/haxe');
|
|
const FlashPlayer = require('../tasks/flashplayer');
|
|
const version = require('./version');
|
|
const prepare = require('./prepare');
|
|
const debug = require('../tasks/debug');
|
|
const webserver = require('gulp-webserver');
|
|
|
|
|
|
const generate = () => function generate() {
|
|
return new Haxe().haxelib([
|
|
'run', 'protohx', 'generate', 'protohx.json'
|
|
]);
|
|
};
|
|
|
|
const build = (platform) => function build() {
|
|
const argv = yargs.argv;
|
|
return gulp.src('.')
|
|
.pipe(new Haxe().openfl({
|
|
command: 'build',
|
|
platform: platform,
|
|
version: version,
|
|
debug: argv.dev,
|
|
}))
|
|
.pipe(gulp.dest(`target/${platform}`));
|
|
};
|
|
|
|
const flashIndex = function() {
|
|
return gulp.src('src/client/html/index.html')
|
|
.pipe(template({
|
|
scripts: ['app.min.js'],
|
|
swf: 'tankz.swf'
|
|
}))
|
|
.pipe(gulp.dest('target/flash'))
|
|
};
|
|
|
|
const flashJs = function() {
|
|
const src = [
|
|
'src/client/html/js/*.js'
|
|
];
|
|
return gulp.src(src)
|
|
.pipe(babel({presets: ['es2015']}))
|
|
.pipe(uglify())
|
|
.pipe(concat('app.min.js'))
|
|
.pipe(gulp.dest('target/flash'))
|
|
};
|
|
|
|
const webapp = function () {
|
|
return gulp.src('src/webapp/*').pipe(gulp.dest('target'));
|
|
};
|
|
|
|
exports['client:flash:html'] = gulp.parallel(flashIndex, flashJs);
|
|
exports['client:flash'] = gulp.series(prepare(Haxe.ID), generate(), build('flash'), exports['client:flash:html']);
|
|
exports['client:html5'] = gulp.series(prepare(Haxe.ID), generate(), build('html5'));
|
|
exports['client:webapp'] = webapp;
|
|
exports['client'] = gulp.series(prepare(Haxe.ID), generate(), gulp.parallel(build('flash'), build('html5')), exports['client:flash:html'], webapp);
|
|
|
|
|
|
|
|
const testFlash = function() {
|
|
const argv = yargs.argv;
|
|
return build('flash')
|
|
.pipe(new FlashPlayer().run(argv.dev))
|
|
.pipe(debug());
|
|
};
|
|
|
|
const testHtml5 = function() {
|
|
return gulp.series(build('html5'), () => gulp.src('target/html5').pipe(webserver({
|
|
host: 'localhost', port: 3000,
|
|
open: true,
|
|
fallback: 'index.html'
|
|
})))();
|
|
};
|
|
|
|
exports['client:flash:test'] = gulp.series(prepare(Haxe.ID, FlashPlayer.ID), testFlash);
|
|
exports['client:html5:test'] = gulp.series(prepare(Haxe.ID), testHtml5);
|
|
exports['client:test'] = exports['client:flash:test'];
|
|
|
|
|