美文网首页
gulp-检查文件大小写

gulp-检查文件大小写

作者: kyle背背要转运 | 来源:发表于2017-07-10 08:24 被阅读0次

    <b>前提:</b>因为公司的静态资源保存在某云上,要求文件名不能包含大写字母,所以需要在前端的构建上进行文件检查。
    <b>工具:</b>gulp + gulp-rename 即可实现,剩余的插件是顺序执行(run-sequence)缓存(gulp-changed),log提示(gulp-util)。
    <b>原理:</b>使用gulp.src拿到文件,使用rename拿到文件名,用正则进行匹配,返回结果,再结束任务就行啦。

    具体源码如下:

    var gulp = require('gulp'),
    uppercaseCount = 0,
    rename = require('gulp-rename'),
    gutil = require('gulp-util'),
    changed = require('gulp-changed'),
    runSequence = require('run-sequence');
    //源文件路径
    var sourcePath = 'content/hybrid/';
    var paths = {
        styles: sourcePath + 'styles/**/*.css',
        images: sourcePath + 'images/**/*.{jpg,png,gif}',
    };
    //正则匹配大小写,并打印文件名
    function Check_uppercase(path) {
        if (/[A-Z]/.test(path.dirname) || /[A-Z]/.test(path.basename) || /[A-Z]/.test(path.extname)) {
            gutil.log(gutil.colors.magenta(path.dirname + '/' + path.basename + path.extname));
            return 'true';
        }
    }
    //分目录检查
    gulp.task('checkUppercase-img', function() {
        return gulp.src(paths.images).pipe(changed(paths.images)).pipe(rename(function(path) {
            if (Check_uppercase(path)) {
                uppercaseCount = uppercaseCount + 1;
            }
        }));
    });
    gulp.task('checkUppercase-css', function() {
        return gulp.src(paths.styles).pipe(changed(paths.styles)).pipe(rename(function(path) {
            if (Check_uppercase(path)) {
                uppercaseCount = uppercaseCount + 1;
            }
        }));
    });
    //顺序进行并调用
    gulp.task('checkUppercase', function() {
        runSequence('checkUppercase-img', 'checkUppercase-css', function() {
            if (uppercaseCount > 0) {
                gutil.log(gutil.colors.magenta('文件有大写,请修改重试~'));
                process.exit(1);
            }
        });
    });
    

    相关文章

      网友评论

          本文标题:gulp-检查文件大小写

          本文链接:https://www.haomeiwen.com/subject/flcyhxtx.html