diff --git a/gulpfile.js b/gulpfile.js index 371aab8..f06e464 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,57 +1,67 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -const gulp = require("gulp"); -const tsify = require("tsify"); -const sourcemaps = require("gulp-sourcemaps"); -const rename = require("gulp-rename"); -const browserify = require("browserify"); -const source = require("vinyl-source-stream"); -const buffer = require("vinyl-buffer"); -const terser = require("gulp-terser"); -const eslint = require("gulp-eslint"); -const babelify = require("babelify"); -const htmlmin = require("gulp-html-minifier-terser"); +const gulp = require("gulp"); +const tsify = require("tsify"); +const sourcemaps = require("gulp-sourcemaps"); +const rename = require("gulp-rename"); +const browserify = require("browserify"); +const source = require("vinyl-source-stream"); +const buffer = require("vinyl-buffer"); +const terser = require("gulp-terser"); +const eslint = require("gulp-eslint"); +const babelify = require("babelify"); +const htmlmin = require("gulp-html-minifier-terser"); const htmlvalidator = require("gulp-html"); -const imagemin = require('gulp-imagemin'); -const gulpif = require('gulp-if'); -const clean = require('gulp-dest-clean'); const html = () => { - return gulp.src("src/index.html") + return gulp + .src("src/index.html") .pipe(htmlvalidator()) - .pipe(htmlmin({ - removeComments: true, - collapseWhitespace: true, - collapseBooleanAttributes: true, - collapseInlineTagWhitespace: true, - removeRedundantAttributes: true, - minifyCSS: true - })) + .pipe( + htmlmin({ + removeComments: true, + collapseWhitespace: true, + collapseBooleanAttributes: true, + collapseInlineTagWhitespace: true, + removeRedundantAttributes: true, + minifyCSS: true, + }), + ) .pipe(gulp.dest("dist")); }; const js = () => { - gulp.src(["src/**/*.ts", "!node_modules/**"]) - .pipe(eslint({quiet: true})) - .pipe(eslint.results(results => { - // Called once for all ESLint results. - console.log("ESLint results:\n"); - console.log(`Total Errors: ${results.errorCount}`); - let output = ""; - results.forEach(file => { - output += file.filePath + "\n"; - file.messages.forEach(message => { - output += " - " + message.message + " at " + message.line + ":" + message.column + "\n"; + gulp + .src(["src/**/*.ts", "!node_modules/**"]) + .pipe(eslint({ quiet: true })) + .pipe( + eslint.results(results => { + // Called once for all ESLint results. + console.log("ESLint results:\n"); + console.log(`Total Errors: ${results.errorCount}`); + let output = ""; + results.forEach(file => { + output += file.filePath + "\n"; + file.messages.forEach(message => { + output += + " - " + + message.message + + " at " + + message.line + + ":" + + message.column + + "\n"; + }); + output += "\n"; }); - output += "\n"; - }); - console.error(output); - })) - .pipe(eslint.failAfterError()); + console.error(output); + }), + ); return browserify("src/index.ts") .plugin(tsify, { noImplicitAny: true, target: "es6" }) - .transform(babelify, { extensions: [ ".tsx", ".ts" ] }) - .bundle().on("error", (e) => console.error(e)) + .transform(babelify, { extensions: [".tsx", ".ts"] }) + .bundle() + .on("error", e => console.error(e)) .pipe(source("output.js")) .pipe(gulp.dest("dist")) .pipe(buffer()) @@ -63,24 +73,15 @@ const js = () => { }; const res = () => { - return gulp.src("src/res/*") - .pipe(clean("dist/res")) - .pipe(gulpif( - file => file.basename.match(/\.png|jpg|jpeg|gif|svg/gmi) !== [], - imagemin() - )) - .pipe(gulp.dest("dist/res")); + return gulp.src("src/res/**/*.*").pipe(gulp.dest("dist")); }; exports.default = gulp.parallel(js, html, res); exports.watch = () => { - console.log("Transpiling current files..."); - js(); - html(); - res(); - console.log("Watching for changes!"); + console.log("Ready for changes!"); gulp.watch(["src/**/*.js", "src/**/*.ts"], js); gulp.watch("src/*.html", html); - gulp.watch("src/res/*", res); + gulp.watch("res/**/*.*", res); }; +