UNPKG

hck2-dev

Version:

Development Tools For HCK2

133 lines (111 loc) 4.03 kB
////////////////// IMPORTS //////////////////////// global.gulp = require('gulp'); global.path = require('path'); global.prepend = require('prepend'); global.watch = require('gulp-watch'); global.browserSync = require('browser-sync'); global.watcher = {}; global.REQUIRE = require('./autoload').REQUIRE; global.fs = require('fs-extra'); global.colors = require('colors'); global.child = require('child_process'); require('./helpers/import.js'); require('./sitespeed.js'); const jigsaw = require('./jigsaw').init; const start = require('./start/app.js').start; const { minify, original } = require('./html-minifier'); const { SASS, SASS_PROD } = require('./sass'); const { JS, JS_PROD } = require('./javascript'); const { accessibility } = require('./accessibility'); const { stressTest } = require('./loadtest'); const { image } = require('./imagemin'); const { criticalCSS } = require('./criticalcss'); const sprites = require('./sprites'); const { commands } = require('./commands'); const { webfonts } = require('./webfonts'); //////////////// ./IMPORTS //////////////////////// function WATCH() { watch((config.css.dir + '/**/*.scss'), function () { SASS(config.css.input, config.css.output); }).on('change', browserSync.reload); watch((config.js.dir + '/**/*.js'), function () { JS(config.js.input, config.js.output); }).on('change', browserSync.reload); require('./jsExternal').watch(); require('./sassExternal').watch(); if (config.laravel) { config.laravelViews = config.laravelViews || './resources/views/**/*.blade.php'; watch((config.laravelViews), browserSync.reload).on('change', function (file) { try { require('../../config.laravel').init(file); } catch (error) { null; } }); } if (config.images) { setTimeout(() => { console.log(`Optimizing Images (${path.resolve(config.images)})`.magenta); child.fork('./node_modules/hck2-dev/fork/imagemin.js'); }, 3000); } setTimeout(() => { config.sprites && sprites.watchSprites(config); }, 2000); if (config.jigsaw) { const exec = require('child_process').execSync; exec('"./vendor/bin/jigsaw" build'); watch(('./source/**/*.php'), function () { // jigsaw({ build: true }, () => browserSync.reload()); exec('"./vendor/bin/jigsaw" build'); SASS(config.css.input, config.css.output); JS(config.js.input, config.js.output); console.log('Jigsaw Build Complete'.bgBlue.white); browserSync.reload(); }); browserSync.init({ server: { baseDir: "./build_local" } }); } if (config.webfonts) { fs.ensureDirSync(config.webfonts); watch((config.webfonts + '/**/*.svg'), function () { clearTimeout(this.timeout); this.timeout = setTimeout(() => { console.log("Creating Webfonts, Please Wait..."); webfonts(); }, 250); }); } if (config.browsersync) { console.log('\x1b[36m%s\x1b[0m', 'watching ' + path.resolve(config.css.dir + '/**/*.scss')); console.log('\x1b[36m%s\x1b[0m', 'watching ' + path.resolve(config.js.dir + '/**/*.js')); browserSync.init({ open: 'external', proxy: { target: fs.readFileSync(config.browsersync).toString(), ws: true // enables websockets for crossbrowser sync } }); } } function test() { var child = require('child_process'); child.execSync('cd'); } module.exports = { SASS, WATCH, minify, original, SASS_PROD, gulp, JS, JS_PROD, accessibility, stressTest, image, criticalCSS, commands, jigsaw, test, start };