1
0
mirror of https://github.com/matt-fidd/stratos.git synced 2026-01-01 18:19:25 +00:00
Files
stratos/gulpfile.js

60 lines
1.5 KiB
JavaScript

'use strict';
// Import required modules
const del = require('del');
const { dest, series, src, watch } = require('gulp');
const path = require('path');
const postcss = require('gulp-postcss');
const sass = require('gulp-sass')(require('sass'));
const dbInit = require(path.join(__dirname, 'utility', 'db', 'dbInit'));
const dbTestData = require(path.join(__dirname, 'utility', 'db', 'dbTestData'));
// Set src and destination paths for css compilation
const cssPaths = {
src: 'src/stylesheets/main.scss',
dest: 'public/css'
};
// Compile and optimise css from sass file
function compileStyles() {
let cssnanoOptions = {
normalizeWhitespace: false
};
if (process.env.NODE_ENV === 'production')
cssnanoOptions = {};
const plugins = [
require('autoprefixer'),
require('cssnano')({
preset: [ 'default', cssnanoOptions ]
}),
require('postcss-sort-media-queries')
];
return src(cssPaths.src)
.pipe(sass().on('error', sass.logError))
.pipe(postcss(plugins))
.pipe(dest(cssPaths.dest));
}
// Clean css destination directory
function cleanStyles() {
return del([ cssPaths.dest ]);
}
// Task to build stylesheet from start to finish
exports.styles = series(cleanStyles, compileStyles);
// Task to watch for changes in sass files, then compile on changes
exports.watchStyles = () => {
watch('src/stylesheets/**/*.scss', exports.styles);
};
// Create tables and relationships in database
exports.dbInit = dbInit;
// Clean all data and insert test data into database
exports.dbTestData = series(dbTestData.clean, dbTestData.insert);