ultimate-jekyll-manager
Version:
Ultimate Jekyll dependency manager
105 lines (86 loc) • 2.44 kB
JavaScript
// Libraries
const Manager = new (require('../../build.js'));
const logger = Manager.logger('development-rebuild');
const { src, dest, watch, series } = require('gulp');
const path = require('path');
const { execute } = require('node-powertools');
// Load package
const package = Manager.getPackage('main');
const project = Manager.getPackage('project');
const config = Manager.getConfig('project');
const rootPathPackage = Manager.getRootPath('main');
const rootPathProject = Manager.getRootPath('project');
// Glob
const input = [
// Files to include
`${rootPathPackage}/dist/defaults/dist/**/*`,
// Files to exclude
];
const output = 'dist';
const delay = 250;
// Index
let index = -1;
// SASS Compilation Task
async function developmentRebuild(complete) {
// Increment index
index++;
// Log
logger.log('Starting...');
Manager.logMemory(logger, 'Start');
// Skip first run
if (index === 0 && false) {
logger.log('Skipping first run');
return complete();
} else if (Manager.isServer()) {
logger.log('Skipping because not in development');
return complete();
}
// Execute uj setup again
const checks = [
'--check-manager=false',
'--check-node=false',
'--check-bundler=false',
'--check-ruby=false',
'--check-peer-dependencies=false',
'--setup-scripts=false',
'--build-site-files=true',
'--build-site-files-input="dist/**/*"',
'--create-cname=false',
'--fetch-firebase-auth=false',
'--check-locality=false',
];
// Execute
await execute(`npx uj setup ${checks.join(' ')}`, { log: true });
// Log
logger.log('Finished!');
// Complete
return complete();
// Compile
// return src(input)
// .pipe(dest(output))
// .on('finish', () => {
// // Log
// logger.log('Finished!');
// // Complete
// return complete();
// });
}
// Watcher Task
function developmentRebuildWatcher(complete) {
// Quit if in build mode
if (Manager.isBuildMode()) {
logger.log('[watcher] Skipping watcher in build mode');
return complete();
}
// Log
logger.log('[watcher] Watching for changes...');
// Watch for changes
watch(input, { delay: delay, dot: true }, developmentRebuild)
.on('change', (path) => {
logger.log(`[watcher] File changed (${path})`);
});
// Complete
return complete();
}
// Default Task
module.exports = series(developmentRebuild, developmentRebuildWatcher);