|
- 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 browserify = require("browserify");
- var source = require("vinyl-source-stream");
- var tsify = require("tsify");
-
- var watchify = require("watchify");
- var fancy_log = require("fancy-log");
-
- var paths = {
- pages: ["src/html/*.html"],
- css: ["src/css/*.css"],
- ts: ["src/ts/frontend.ts"],
- };
-
- var watchedBrowserify = watchify(
- browserify({
- basedir: ".",
- debug: true,
- entries: paths.ts,
- cache: {},
- packageCache: {},
- }).plugin(tsify)
- );
-
- function bundle() {
- return watchedBrowserify
- .bundle()
- .on("error", fancy_log)
- .pipe(source("bundle.js"))
- .pipe(gulp.dest("dist"));
- }
-
- // 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"));
- });
-
- gulp.task("build", gulp.parallel("copy-html", "copy-css", "compile-ts", "sass"));
-
- // Static Server + compile ts + watch scss/html/css files
- //gulp.task('serve', gulp.series("compile-ts", "browserify", 'sass', "copy-html", "copy-css", function() {
- gulp.task('serve', gulp.series("build", bundle, 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.watch("dist/*.js").on('change', browserSync.reload);
- }));
-
-
- gulp.task('default', gulp.series('serve'));
- watchedBrowserify.on("update", bundle);
- watchedBrowserify.on("log", fancy_log);
|