view gulpfile.js @ 1188:a7c43131d871

bake: Fix file write flushing problem with Python 3.8+ Writing the cache files fails in Python 3.8 because it looks like flushing behaviour has changed. We need to explicitly flush. And even then, in very rare occurrences, it looks like it can still run into racing conditions, so we do a very hacky and ugly "retry" loop when fetching cached data :(
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 15 Jun 2021 22:36:23 -0700
parents 7eb58b5748eb
children bfa470063ee2
line wrap: on
line source

'use strict';

var gulp = require('gulp'),
    util = require('gulp-util'),
    sass = require('gulp-sass'),
    sourcemaps = require('gulp-sourcemaps'),
    rename = require('gulp-rename'),
    cssnano = require('gulp-cssnano'),
    concat = require('gulp-concat'),
    uglify = require('gulp-uglify');

// Stylesheets
gulp.task('sass', function() {
    return gulp.src('piecrust/admin/assets/sass/**/*.scss')
        //.pipe(sourcemaps.init())
        .pipe(sass({
            errLogToConsole: true,
            outputStyle: 'compressed',
            includePaths: [
                'node_modules/bootstrap/scss',
                'node_modules/open-iconic/font/css']}))
        .pipe(cssnano())
        //.pipe(sourcemaps.write())
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest('piecrust/admin/static/css'));
});

// Javascript
gulp.task('js', function() {
    return gulp.src([
            'node_modules/jquery/dist/jquery.min.js',
            'node_modules/bootstrap/dist/js/bootstrap.min.js',
            'node_modules/timeago/jquery.timeago.js',
            'piecrust/admin/assets/js/**/*.js'
            ])
        .pipe(sourcemaps.init())
        .pipe(concat('foodtruck.js'))
        //.pipe(uglify())
        .pipe(sourcemaps.write())
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest('piecrust/admin/static/js'));
});

// Fonts/images
gulp.task('fonts', function() {
    return gulp.src([
            'node_modules/open-iconic/font/fonts/*'
        ])
        .pipe(gulp.dest('piecrust/admin/static/fonts'));
});

gulp.task('images', function() {
    return gulp.src([
            'piecrust/admin/assets/img/*'
        ])
        .pipe(gulp.dest('piecrust/admin/static/img'));
});

// Launch tasks
gulp.task('default', gulp.parallel(['sass', 'js', 'fonts', 'images']));

gulp.task('watch', function() {
    gulp.watch('piecrust/admin/assets/sass/**/*.scss', gulp.series('sass'));
    gulp.watch('piecrust/admin/assets/js/**/*.js', gulp.series('js'));
});