node.js - gulp 怎么查看匹配到了哪些文件 ?
伊谢尔伦
伊谢尔伦 2017-04-17 13:54:10
[Node.js讨论组]

我想用

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

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
伊谢尔伦

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

PHP中文网

推荐一个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*/);

巴扎黑

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

伊谢尔伦

你这个需求应该分别作不同的任务,而不应该做在同一个任务里面,譬如:

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('目标目录'));
});

这样也更好维护啊

大家讲道理

gulp.task('js', function () {

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

});

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号