apex-nitro
Version:
Your essential APEX companion
82 lines (70 loc) • 2.05 kB
JavaScript
;
const gulp = require('gulp');
module.exports = function (config, browsersync) {
gulp.task('simple-reload', () => {
if (config.browsersync.realTime) {
browsersync.reload();
}
});
gulp.task('simple-stream', () => {
if (config.browsersync.realTime) {
return gulp.src(config.srcFolder + '/css/**/*.css')
.pipe(browsersync.stream({
match: '**/*.css'
}));
}
});
gulp.task('watch', done => {
// Defaults tasks for a simple flow (not advanced)
let jsTasks = ['simple-reload'];
let styleTasks = ['simple-stream'];
let otherTasks = ['simple-reload'];
if (config.mode === 'advanced') {
if (config.js.processor === 'webpack') {
jsTasks = ['webpack-watch'];
} else if (config.js.processor === 'typescript') {
jsTasks = ['ts-watch'];
} else {
jsTasks = ['js-watch'];
}
styleTasks = ['style-watch'];
otherTasks = ['other-watch'];
}
// Theme roller support for sass or less files
if ((config.css.language === 'sass' || config.css.language === 'less') &&
(config.themeroller && config.themeroller.files.length > 0)) {
styleTasks.unshift('themeroller');
}
// Watch for js and ts
gulp.watch('**/*.{js,ts}', {
cwd: config.srcFolder + '/js/'
}, gulp.series(jsTasks));
// Watch for style files (scss, sass, less, css)
// activates theme roller for (scss, sass, less)
gulp.watch('**/*.scss', {
cwd: config.srcFolder + '/scss/'
}, gulp.parallel(styleTasks));
gulp.watch('**/*.sass', {
cwd: config.srcFolder + '/sass/'
}, gulp.parallel(styleTasks));
gulp.watch('**/*.less', {
cwd: config.srcFolder + '/less/'
}, gulp.parallel(styleTasks));
gulp.watch('**/*.css', {
cwd: config.srcFolder + '/css/'
}, gulp.series(styleTasks));
// All files except js, scss, sass, less, css
const otherFiles = [
'**/*.*',
'!js/**/*.js',
'!scss/**/*.scss',
'!sass/**/*.sass',
'!less/**/*.less',
'!css/**/*.css'
];
gulp.watch(otherFiles, {
cwd: config.srcFolder
}, gulp.series(otherTasks));
done();
});
};