UNPKG

hck2-dev

Version:

Development Tools For HCK2

95 lines (82 loc) 3.95 kB
const company = config.companyLogo || ` ██╗ ██╗ ██████╗██╗ ██╗██████╗ ██║ ██║██╔════╝██║ ██╔╝╚════██╗ ███████║██║ █████╔╝ █████╔╝ ██╔══██║██║ ██╔═██╗ ██╔═══╝ ██║ ██║╚██████╗██║ ██╗███████╗ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ `; const gulp = require('gulp'); const lint = require('../../eslint.json'); const babel = require('gulp-babel'); const minify = require("gulp-babel-minify"); const eslint = require('gulp-eslint'); const sourcemaps = require('gulp-sourcemaps'); const concat = require("gulp-concat"); const gulpif = require('gulp-if'); function JS() { var options = {}; process.argv.indexOf('--prod') >= 0 ? options.prod = true : options.prod = false; process.argv.indexOf('--seperate') >= 0 ? options.seperate = true : options.seperate = false; var input = path.resolve(config.js.input); var inputFileName = path.parse(input).base; var begin = Date.now(); var jsLocation = path.parse(input).dir; var bootstrap = jsLocation + '/bootstrap.js'; var all = jsLocation + '/**/*.js'; var jsPORD = '!' + path.resolve(jsLocation + '/dev/**/*.js'); var jsExternal = '!' + path.resolve(jsLocation + '/external/**/*.js'); // setTimeout(() => { // console.log(jsExternal); // console.log(jsPORD); // }, 500); console.log('\x1Bc'); console.log('\x1b[36m%s\x1b[0m', company); function message() { if (options.prod) { console.log('\x1b[33m%s\x1b[0m', 'Compiling Production Javascript ' + input); console.log('\x1b[32m%s', 'Saved in ' + config.js.output + config.js.base); return true; } console.log('\x1b[33m%s\x1b[0m', 'Compiling Dev Javascript ' + input); console.log('\x1b[32m%s', 'Saved in ' + config.js.output + config.js.base); return false; } gulp.src([bootstrap, input, all, jsExternal, (options.prod ? jsPORD : '')]) .pipe(eslint(lint)) .pipe(eslint.format()) .pipe(concat(inputFileName)) .pipe(gulpif(!options.prod, sourcemaps.init())) .pipe(babel({ "presets": [ ["env", { "targets": { "browsers": ["last 2 versions", "safari >= 7"] } }] ] })) .pipe(gulpif(message, minify())) .pipe(gulpif(!options.prod, sourcemaps.write('./'))) .pipe(gulp.dest(config.js.output)); console.log('\x1b[37m%s', new Date().toUTCString()); var end = Date.now(); var timeSpent = (end - begin) + "ms"; console.log('\x1b[36m%s\x1b[0m', 'Finished Compile: ' + timeSpent); if (config.laravel) { config.laravelMix = config.laravelMix || './public/mix-manifest.json'; fs.readFile(config.laravelMix, function (err, data) { if (err) return console.log(`mix-manifest.json file not found (${config.laravelMix})`.red); var json = JSON.parse(data.toString()); var file = config.js.output.replace('public/', '').slice(1) + config.js.base; var id = parseInt(json[file].split('?id=')[1]); id++; json[file] = file + '?id=' + id; fs.writeFile(config.laravelMix, JSON.stringify(json, null, 4), function (err) { if (err) return console.log('Error writing to mix-manifest.json'.red); console.log(`Updated mix-manifest.json (${config.laravelMix})`.gray); }); }); } } module.exports = { JS };