node.js - gulp 怎么查看匹配到了哪些文件 ?

 pan2502851807 发布于 2022-11-02 20:57

我想用

gulp.src('./src/**/*.*')

匹配src目录里面的所有文件 , 然后判断文件后缀名 , 是css的话就压缩css , js的话就压缩js , html就压缩html , 其他文件就直接复制到其他目录 .

问题是 : 我无法判断后缀名 , 因为我不知道怎么获取匹配到了哪些文件以及它们的文件名 ..

5 个回答
  • gulp.task('js', function () {

    return gulp.src('./src/js/**/*.js')
        .on('data',function(file){
            //file.relative是文件匹配时*全匹配出的路径
            console.log(file.relative);
        });

    });

    2022-11-12 01:55 回答
  • 你这个需求应该分别作不同的任务,而不应该做在同一个任务里面,譬如:

    gulp.task('js', function(){
        gulp
        .src('./src/**/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('目标目录'));
    });
    
    gulp.task('css', function(){
        gulp
        .src('./src/**/*.js')
        .pipe(minify())
        .pipe(gulp.dest('目标目录'));
    });

    这样也更好维护啊

    2022-11-12 01:55 回答
  • 这样的话可以把每个步骤拆分成多个task,然后在运行时候依次运行就好了,最好是针对一种文件(html,css,js)单独一个任务吧,也方便扩展,或者随时替换或删除task。

    2022-11-12 01:55 回答
  • 推荐一个node插件through2

    gulp中可以这样使用:
    var through2 = require('through2');
    // ...

    gulp.src('/src/**/*.*)
    .pipe(through2.obj(function (file, enc, cb) {

    console.log(file.relative); // 文件路径
    // 然后可以判断file的后缀,进行相应的任务
    // if (extension === '.css') {
    //    css task
    // } else if (extension === '.js') {
    //    js task
    // }
    cb();

    }))
    .pipe(/* other tasks*/);

    2022-11-12 01:55 回答
  • 谢谢大家 , 我已经找到答案了 , 并且写一片博文 :
    gulp 怎么查看匹配到了哪些文件
    http://w3cc.cc/2016/05/27/gulp-how-to-read-file-name/

    2022-11-12 01:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有