mirror of
https://github.com/Gioni06/terminal.css
synced 2025-03-09 17:19:04 -04:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const chokidar = require('chokidar');
|
|
const liveServer = require('live-server');
|
|
const build = require('./utils/build-fn');
|
|
const path = require('path');
|
|
|
|
function debounce(func, wait, immediate) {
|
|
var timeout;
|
|
return function() {
|
|
var context = this, args = arguments;
|
|
var later = function() {
|
|
timeout = null;
|
|
if (!immediate) func.apply(context, args);
|
|
};
|
|
var callNow = immediate && !timeout;
|
|
clearTimeout(timeout);
|
|
timeout = setTimeout(later, wait);
|
|
if (callNow) func.apply(context, args);
|
|
};
|
|
};
|
|
|
|
/**
|
|
* Serve the site in watch mode
|
|
*/
|
|
const serve = (flags) => {
|
|
console.log(`Starting local server at http://localhost:${flags.port}`);
|
|
|
|
const options = {
|
|
sourceFile: path.resolve(__dirname, '../src/terminal.css'),
|
|
distFolder: path.resolve(__dirname, '../dist'),
|
|
docsFolder: path.resolve(__dirname, '../docs')
|
|
}
|
|
|
|
build.run(options);
|
|
liveServer.start({
|
|
port: flags.port,
|
|
root: options.docsFolder,
|
|
open: true,
|
|
logLevel: 0
|
|
});
|
|
|
|
chokidar.watch(options.sourceFile, { ignoreInitial: true }).on(
|
|
'all',
|
|
debounce(() => {
|
|
build.run(options);
|
|
console.log('Waiting for changes...');
|
|
}, 500)
|
|
);
|
|
};
|
|
|
|
serve({ port: 3000 })
|