Skip to content
Snippets Groups Projects
Select Git revision
  • 9ff4c9013eb276087806eccb10cd94337da42f22
  • master default protected
2 results

0001_initial.py

Blame
  • gulpfile.js 9.89 KiB
    /******************************************************
     * PATTERN LAB NODE
     * EDITION-NODE-GULP
     * The gulp wrapper around patternlab-node core, providing tasks to interact with the core library and move supporting frontend assets.
     ******************************************************/
    var gulp = require("gulp"),
      path = require("path"),
      browserSync = require("browser-sync").create(),
      argv = require("minimist")(process.argv.slice(2));
    
    const postcss = require("gulp-postcss");
    const tailwindcss = require("tailwindcss");
    const rename = require("gulp-rename");
    const assets = require("postcss-assets");
    const postcssPurgecss = require("@fullhuman/postcss-purgecss")({
      content: [
        "./source/**/*.mustache",
        "./source/**/*.json",
        "./source/**/*.js",
        "./public/**/*.html",
        "./public/**/*.js",
      ],
      defaultExtractor: (content) => content.match(/[A-Za-z0-9-_:/]+/g) || [],
    });
    
    function resolvePath(pathInput) {
      return path.resolve(pathInput).replace(/\\/g, "/");
    }
    
    /******************************************************
     * COPY TASKS - stream assets from source to destination
     ******************************************************/
    // JS copy
    gulp.task("pl-copy:js", function (done) {
      return gulp
        .src("**/*.js", { cwd: resolvePath(paths().source.js) })
        .pipe(gulp.dest(resolvePath(paths().public.js)))
        .on("end", done);
    });
    
    // Images copy
    gulp.task("pl-copy:img", function (done) {
      return gulp
        .src("**/*.*", { cwd: resolvePath(paths().source.images) })
        .pipe(gulp.dest(resolvePath(paths().public.images)))
        .on("end", done);
    });
    
    // Favicon copy
    gulp.task("pl-copy:favicon", function (done) {
      return gulp
        .src("favicon.ico", { cwd: resolvePath(paths().source.root) })
        .pipe(gulp.dest(resolvePath(paths().public.root)))
        .on("end", done);
    });
    
    // Fonts copy
    gulp.task("pl-copy:font", function (done) {
      return gulp
        .src("*", { cwd: resolvePath(paths().source.fonts) })
        .pipe(gulp.dest(resolvePath(paths().public.fonts)))
        .on("end", done);
    });
    
    // CSS Copy
    // only copy style.pkgd.css and patternlab-scaffolding.css
    gulp.task("pl-copy:css", function (done) {
      return gulp
        .src(resolvePath(paths().source.root) + "/dist/style.pkgd.css")
        .pipe(