PHP Classes

File: frontend/html/gulpfile.js

Recommend this page to a friend!
  Packages of Everton C B Junior   Igreja Aberta   frontend/html/gulpfile.js   Download  
File: frontend/html/gulpfile.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Igreja Aberta
Church activity management application
Author: By
Last change:
Date: 10 days ago
Size: 4,386 bytes
 

Contents

Class file image Download
const { src, dest, watch, series, parallel } = require("gulp"); const sass = require("gulp-sass")(require("sass")); const cleanCSS = require("gulp-clean-css"); const terser = require("gulp-terser"); const rename = require("gulp-rename"); const sourcemaps = require("gulp-sourcemaps"); const purgecss = require("gulp-purgecss"); const browserSync = require("browser-sync").create(); const fileinclude = require("gulp-file-include"); // NOVO: plugin para includes HTML const paths = { html: { src: "./src/*.html", dest: "./", }, styles: { src: "./src/scss/**/*.scss", dest: "./assets/css", }, scripts: { src: "./src/js/**/*.js", dest: "./assets/js", }, vendorFonts: { src: "./fonts/la-*.*", dest: "./assets/fonts", }, purgeContent: ["./*.html", "./src/js/**/*.js", "./assets/js/**/*.js"], }; function vendorFonts() { return src(paths.vendorFonts.src).pipe(dest(paths.vendorFonts.dest)); } // NOVO: Tarefa para processar HTML com includes function htmlDev() { return src(paths.html.src) .pipe(fileinclude({ prefix: '@@', basepath: '@file', indent: true, // Mantém a indentação do código })) .pipe(dest(paths.html.dest)) .pipe(browserSync.stream()); } // NOVO: Tarefa para build de HTML (sem sourcemaps, otimizado) function htmlBuild() { return src(paths.html.src) .pipe(fileinclude({ prefix: '@@', basepath: '@file', indent: false, // Remove indentação desnecessária no build })) // Opcional: minificar HTML no build // .pipe(htmlmin({ collapseWhitespace: true, removeComments: true })) .pipe(dest(paths.html.dest)); } function stylesDev() { return src(paths.styles.src, { sourcemaps: true }) .pipe( sass.sync({ outputStyle: "expanded", }).on("error", sass.logError) ) .pipe(cleanCSS()) .pipe( rename({ suffix: ".min", }) ) .pipe(dest(paths.styles.dest, { sourcemaps: "." })) .pipe(browserSync.stream()); } function stylesBuild() { return src(paths.styles.src) .pipe( sass.sync({ outputStyle: "expanded", }).on("error", sass.logError) ) .pipe( purgecss({ content: paths.purgeContent, safelist: ["is-active", "active", "open", "show"], }) ) .pipe(cleanCSS()) .pipe( rename({ suffix: ".min", }) ) .pipe(dest(paths.styles.dest)); } function scriptsDev() { return src(paths.scripts.src, { sourcemaps: true }) .pipe( terser({ compress: { passes: 2, }, mangle: false, format: { comments: false, }, }) ) .pipe( rename({ suffix: ".min", }) ) .pipe(dest(paths.scripts.dest, { sourcemaps: "." })) .pipe(browserSync.stream()); } function scriptsBuild() { return src(paths.scripts.src) .pipe( rename({ suffix: ".min", }) ) .pipe( terser({ compress: { passes: 3, drop_console: true, drop_debugger: true, toplevel: true, }, mangle: { toplevel: true, }, format: { comments: false, }, }) ) .pipe(dest(paths.scripts.dest)); } const scriptsWatch = series(scriptsDev, reload); function reload(done) { browserSync.reload(); done(); } function serve(done) { browserSync.init({ server: { baseDir: "./", }, notify: false, open: false, }); done(); } function watcher() { watch(paths.styles.src, stylesDev); watch(paths.scripts.src, scriptsWatch); watch(paths.vendorFonts.src, vendorFonts); watch(paths.html.src, htmlDev); // ALTERADO: agora observa os HTML em src/ } // ATUALIZADO: inclui htmlDev no desenvolvimento const build = parallel(stylesBuild, scriptsBuild, vendorFonts, htmlBuild); const dev = series(parallel(stylesDev, scriptsDev, vendorFonts, htmlDev), serve, watcher); exports.styles = stylesDev; exports.stylesBuild = stylesBuild; exports.scriptsDev = scriptsDev; exports.scriptsBuild = scriptsBuild; exports.scripts = scriptsDev; exports.vendorFonts = vendorFonts; exports.html = htmlDev; // NOVO: exporta tarefa HTML exports.htmlBuild = htmlBuild; // NOVO: exporta build HTML exports.build = build; exports.serve = dev; exports.default = dev;