73 lines
1.8 KiB
JavaScript
73 lines
1.8 KiB
JavaScript
/*
|
|
Tasks:
|
|
|
|
$ gulp : Runs all tasks.
|
|
$ gulp watch : Starts a watch on all tasks.
|
|
$ gulp css : Runs "css" task.
|
|
$ gulp webcomponent : Runs "webcomponent" tasks.
|
|
*/
|
|
|
|
const { src, dest, watch, parallel, series } = require('gulp');
|
|
|
|
const sass = require('gulp-sass');
|
|
const cleancss = require('gulp-clean-css');
|
|
// const concat = require('gulp-concat');
|
|
const typescript = require('gulp-typescript');
|
|
const replace = require('gulp-replace');
|
|
const fs = require('fs');
|
|
|
|
const inputDir = 'src';
|
|
const outputDir = 'dist';
|
|
const binDir = 'bin';
|
|
|
|
const css = cb => {
|
|
return src(inputDir + '/scss/mburger.scss')
|
|
.pipe(sass().on('error', sass.logError))
|
|
.pipe(cleancss())
|
|
.pipe(dest(outputDir));
|
|
};
|
|
|
|
const webcomponentJs = cb => {
|
|
return src([
|
|
inputDir + '/ts/*.d.ts', // Include all typings.
|
|
inputDir + '/ts/*.ts' // Include the needed ts files.
|
|
])
|
|
.pipe(
|
|
typescript({
|
|
target: 'es6',
|
|
module: 'es6'
|
|
})
|
|
)
|
|
.pipe(dest(binDir));
|
|
};
|
|
|
|
const webcomponentCss = cb => {
|
|
return src(inputDir + '/scss/webcomponent.scss')
|
|
.pipe(sass().on('error', sass.logError))
|
|
.pipe(cleancss())
|
|
.pipe(dest(binDir));
|
|
};
|
|
|
|
const webcomponentConcat = cb => {
|
|
var styles = fs.readFileSync(binDir + '/webcomponent.css');
|
|
return src(binDir + '/mburger.js')
|
|
.pipe(replace('[__STYLES__]', styles))
|
|
.pipe(dest(outputDir));
|
|
};
|
|
|
|
const webcomponent = series(
|
|
parallel(webcomponentCss, webcomponentJs),
|
|
webcomponentConcat
|
|
);
|
|
|
|
const watchTask = cb => {
|
|
watch(inputDir + '/scss/*.scss', parallel(css, webcomponent));
|
|
watch(inputDir + '/ts/*.ts', webcomponent);
|
|
cb();
|
|
};
|
|
|
|
exports.default = parallel(css, webcomponent);
|
|
exports.watch = watchTask;
|
|
exports.css = css;
|
|
exports.webcomponent = webcomponent;
|