UNPKG

phaser-node-kit

Version:

Rapid Game Development with PhaserJS and Node for Modern Browsers

72 lines (62 loc) 1.56 kB
/** * phaser-node-kit * @author C. Byerley * @copyright (c)2017 develephant.com * @license MIT * https://github.com/develephant/phaser-node-kit */ const { pp } = require('./utils') const browserify = require('browserify') const fs = require('fs-extra') const path = require('path') const paths = require('./paths') const spawn = require('child_process').spawn const gameJs = path.join(paths.game, 'js') const buildJs = path.join(paths.build, 'js') class Bundle { constructor() { } configureBuildTmpJs() { return new Promise((function(resolve, reject) { fs.copy(gameJs, buildJs, (err) => { if (err) { reject(err) } else { resolve() } }) })) } processBrowserify() { pp.info('Running Bundler') const config = require(paths.config) const debug = config.debug || false return new Promise(function(resolve, reject) { let ws = fs.createWriteStream(path.join(paths.build, 'bundle.js')) let b = browserify(path.join(buildJs, 'index.js'), {debug: debug}) .bundle() .pipe(ws) ws.on('error', (err) => { reject(err) }) ws.on('finish', () => { fs.remove(buildJs, (err) => { if (err) { reject(err) } else { resolve() } }) }) }) } run() { return this.configureBuildTmpJs() .then(() => { return this.processBrowserify() }) .catch((err) => { pp.err(err) }) } } module.exports = Bundle