87 lines
2.0 KiB
JavaScript
87 lines
2.0 KiB
JavaScript
// Sass configuration
|
|
const gulp = require('gulp');
|
|
const sass = require('gulp-sass');
|
|
const autoprefixer = require('gulp-autoprefixer');
|
|
const prettier = require('gulp-prettier');
|
|
const cleanCSS = require('gulp-clean-css');
|
|
const rename = require('gulp-rename');
|
|
const browserSync = require('browser-sync').create();
|
|
const ts = require('gulp-typescript');
|
|
const tsProject = ts.createProject('tsconfig.json');
|
|
var run = require('gulp-run-command').default;
|
|
const open = require('open');
|
|
|
|
|
|
gulp.task('typescript', function () {
|
|
return tsProject.src()
|
|
.pipe(tsProject())
|
|
.js.pipe(gulp.dest('static/js'));
|
|
});
|
|
|
|
gulp.task('sass', function(cb) {
|
|
gulp
|
|
// Process CSS File
|
|
.src('src/style/combined.scss')
|
|
.pipe(sass().on('error', sass.logError))
|
|
.pipe(autoprefixer({
|
|
cascade: false
|
|
}))
|
|
.pipe(prettier({ singleQuote: true }))
|
|
.pipe(rename({ basename: 'ndws' }))
|
|
// Create full CSS file
|
|
.pipe(
|
|
gulp.dest("static/css")
|
|
)
|
|
// Process and create minified css file
|
|
.pipe(cleanCSS({compatibility: 'ie8'}))
|
|
.pipe(rename({ suffix: '.min' }))
|
|
.pipe(gulp.dest('static/css'));
|
|
|
|
browserSync.reload();
|
|
cb();
|
|
});
|
|
|
|
/* Run Hugo, call async! */
|
|
function runHugo(cb) {
|
|
|
|
cb();
|
|
}
|
|
|
|
/* Start Hugo and launch browser*/
|
|
gulp.task('hugo', function(cb) {
|
|
console.log("hugoTask");
|
|
run('hugo server -D')();
|
|
|
|
(async () => {
|
|
await open('http://localhost:1313');
|
|
})();
|
|
|
|
});
|
|
|
|
/* Start watch tasks */
|
|
function startWatchTasks(cb) {
|
|
gulp.watch('src/style/*.scss', gulp.series('sass'));
|
|
gulp.watch('src/typescript/*.ts', gulp.series('typescript'));
|
|
cb();
|
|
}
|
|
|
|
function runHugo(cb) {
|
|
console.log("runHugo");
|
|
gulp.series('hugo');
|
|
cb();
|
|
}
|
|
|
|
|
|
gulp.task(
|
|
'default',
|
|
gulp.series('sass', 'typescript', gulp.parallel('hugo', startWatchTasks))
|
|
|
|
// gulp.series('sass', 'hugo', function(cb) {
|
|
// // browserSync.init({
|
|
// // server: {
|
|
// // baseDir: "./dist"
|
|
// // },
|
|
// // open: "external"
|
|
// // });
|
|
// })
|
|
); |