[build] added html5 task

This commit is contained in:
2018-01-09 22:22:03 +03:00
parent d3294a04f5
commit 729798bc25
9 changed files with 145 additions and 95 deletions

View File

@@ -1,10 +1,15 @@
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() {
@@ -13,26 +18,67 @@ const generate = () => function generate() {
]);
};
const build = () => function build() {
const build = (platform) => function build() {
const argv = yargs.argv;
return gulp.src('.')
.pipe(new Haxe().openfl({
command: 'build',
platform: 'flash',
platform: platform,
version: version,
outputFile: 'tankz.swf',
debug: argv.dev,
}))
.pipe(gulp.dest('target'));
.pipe(gulp.dest(`target/${platform}`));
};
const test = (build) => function test() {
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()
.pipe(new FlashPlayer().run(argv.dev))
.pipe(debug());
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'];
exports['client'] = gulp.series(prepare(Haxe.ID), generate(), build());
exports['client:test'] = gulp.series(prepare(Haxe.ID, FlashPlayer.ID), test(build()));