|
|
@@ -0,0 +1,47 @@ |
|
|
|
let gulp = require("gulp"); |
|
|
|
let browserSync = require("browser-sync").create(); |
|
|
|
let sass = require("gulp-sass"); |
|
|
|
|
|
|
|
var ts = require("gulp-typescript"); |
|
|
|
var tsProject = ts.createProject("tsconfig.json"); |
|
|
|
|
|
|
|
var paths = { |
|
|
|
pages: ["src/html/*.html"], |
|
|
|
css: ["src/css/*.css"], |
|
|
|
}; |
|
|
|
|
|
|
|
// Compile sass into CSS & auto-inject into browsers |
|
|
|
gulp.task('sass', function() { |
|
|
|
return gulp.src("src/scss/*.scss") |
|
|
|
.pipe(sass()) |
|
|
|
.pipe(gulp.dest("dist/css")) |
|
|
|
.pipe(browserSync.stream()); |
|
|
|
}); |
|
|
|
|
|
|
|
gulp.task("copy-html", function () { |
|
|
|
return gulp.src(paths.pages).pipe(gulp.dest("dist")); |
|
|
|
}); |
|
|
|
|
|
|
|
gulp.task("copy-css", function () { |
|
|
|
return gulp.src(paths.css).pipe(gulp.dest("dist/css")); |
|
|
|
}); |
|
|
|
|
|
|
|
gulp.task("compile-ts", function () { |
|
|
|
return tsProject.src().pipe(tsProject()).js.pipe(gulp.dest("dist")); |
|
|
|
}); |
|
|
|
|
|
|
|
// Static Server + compile ts + watch scss/html/css files |
|
|
|
gulp.task('serve', gulp.series("compile-ts", 'sass', "copy-html", "copy-css", function() { |
|
|
|
|
|
|
|
browserSync.init({ |
|
|
|
server: "./dist/" |
|
|
|
}); |
|
|
|
|
|
|
|
gulp.watch("src/scss/*.scss", gulp.series('sass')); |
|
|
|
gulp.watch("src/css/*.css").on('change', gulp.series("copy-css")); |
|
|
|
gulp.watch("src/html/*.html").on('change', gulp.series("copy-html")); |
|
|
|
gulp.watch("dist/*.html").on('change', browserSync.reload); |
|
|
|
})); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('default', gulp.series('serve')); |