|
|
|
//@format
|
|
|
|
const yaml = require('js-yaml');
|
|
|
|
const fs = require('fs');
|
|
|
|
const {SITE, PORT, BSREWRITE, PATHS} = loadConfig();
|
|
|
|
//var server = require('browser-sync').create();
|
|
|
|
//global.server = server;
|
|
|
|
const gulp = require('gulp');
|
|
|
|
const plumber = require('gulp-plumber');
|
|
|
|
const autoprefixer = require('gulp-autoprefixer');
|
|
|
|
const sass = require('gulp-sass')(require('sass'));
|
|
|
|
const browsersync = require('browser-sync').create();
|
|
|
|
const sourcemaps = require('gulp-sourcemaps');
|
|
|
|
|
|
|
|
function loadConfig() {
|
|
|
|
var ymlFile = fs.readFileSync('config.yml', 'utf8');
|
|
|
|
return yaml.load(ymlFile);
|
|
|
|
}
|
|
|
|
|
|
|
|
// BrowserSync
|
|
|
|
function bsInit(done) {
|
|
|
|
browsersync.init({
|
|
|
|
logLevel: 'debug',
|
|
|
|
//proxy: 'https://roblib_2022.lndo.site'
|
|
|
|
proxy: 'https://rdm2.researchspaces.ca',
|
|
|
|
});
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
|
|
|
|
function bsInit__remote(done) {
|
|
|
|
browsersync.init({
|
|
|
|
proxy: SITE.Remote.Url,
|
|
|
|
serveStatic: ['.'],
|
|
|
|
files: PATHS.Watch,
|
|
|
|
plugins: ['bs-rewrite-rules'],
|
|
|
|
rewriteRules: [
|
|
|
|
{
|
|
|
|
//match: BSREWRITE.Css.Match,
|
|
|
|
match: "/themes/contrib/RDM/css/style.css",
|
|
|
|
replace: "/css/style.css",
|
|
|
|
//replace: BSREWRITE.Css.Replace,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
match: BSREWRITE.Js.Match,
|
|
|
|
replace: BSREWRITE.Js.Replace,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
});
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
|
|
|
|
// BrowserSync Reload
|
|
|
|
function bsReload(done) {
|
|
|
|
browsersync.reload();
|
|
|
|
done();
|
|
|
|
}
|
|
|
|
|
|
|
|
var cp = require('child_process');
|
|
|
|
function drush() {
|
|
|
|
return cp.exec('lando drush cr');
|
|
|
|
}
|
|
|
|
|
|
|
|
// Compile CSS
|
|
|
|
function styles() {
|
|
|
|
'use strict';
|
|
|
|
return gulp
|
|
|
|
.src(PATHS.Scss.Dir + '/**/*.scss')
|
|
|
|
.pipe(plumber())
|
|
|
|
.pipe(sourcemaps.init())
|
|
|
|
.pipe(
|
|
|
|
sass
|
|
|
|
.sync({
|
|
|
|
includePaths: PATHS.Scss.Libraries,
|
|
|
|
})
|
|
|
|
.on('error', sass.logError),
|
|
|
|
)
|
|
|
|
.pipe(sourcemaps.write('.'))
|
|
|
|
.pipe(gulp.dest(PATHS.Css.Dir))
|
|
|
|
.pipe(browsersync.stream());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Watch Files
|
|
|
|
function watchFiles() {
|
|
|
|
'use strict';
|
|
|
|
//gulp.watch(PATHS.Scss.Dir + '/**/*.scss', styles);
|
|
|
|
gulp.watch('css/sass/**/*.scss', styles);
|
|
|
|
gulp.watch('./templates/**/*.twig', drush);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Group complex tasks
|
|
|
|
const build = gulp.parallel(styles);
|
|
|
|
const watch = gulp.series(styles, gulp.parallel(watchFiles, bsInit__remote));
|
|
|
|
|
|
|
|
// Export tasks
|
|
|
|
exports.build = build;
|
|
|
|
exports.styles = styles;
|
|
|
|
exports.drush = drush;
|
|
|
|
exports.watch = watch;
|
|
|
|
exports.default = watch;
|