欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3.gulp.src()

程序员文章站 2024-02-25 14:29:57
...

src(),创建一个流,用于从文件系统中读取Vinyl对象(Vinyl是描述文件的元数据对象,主要属性是文件系统中文件核心的 path 和 content 核心方面。Vinyl对象可用于描述来自多个源的文件)。
用法:

const { src,dest} = require("gulp");
function copy() {
    return src('input/*.js')
        .pipe(dest('output/'))
}
exports.copy = copy;

函数原型:

src(globs,[options]);

globs是文件匹配模式(类似正则表达式),用来匹配文件路径(包括文件名),当然这里也可以直接指定某个具体的文件路径。当有多个匹配模式时,该参数可以是一个数组。
options为可选参数,通常情况下我们不需要用到。
下面我们重点说说Gulp用到的glob的匹配规则以及一些文件匹配技巧。
3.gulp.src()
例子,转换html文件:

//转换html文件
gulp.task('html', function(){
    gulp.src('./src/*.html')
        .pipe(connect.reload())
        .pipe(gulp.dest('./dist'));//写入命令
});

当有多种匹配模式时,可以使用数组:

//使用数组的方式来匹配多种文件
gulp.src(['js/*.js','css/*.css','*.html'])

使用数组方式还有一个好处就是可以很方便的使用排除模式,在数组中的单个匹配模式前加上 ! 即是排除模式,它会在匹配的结果中排除掉这个匹配,要注意的一点是不能在数组中的第一项使用排除模式。

gulp.src([*.js,'!b*.js']) //匹配所有js文件,但排除掉以b开头的js文件
gulp.src(['!b*.js',*.js]) //不会排除任何文件,因为排除模式不能在数组中的第一项中使用

此外,还可以使用展开模式。展开模式是用 {} 作为定界符,根据它里面的内容,会展开为多个模式,最后匹配的结果为所有展开的模式相加起来得到的结果。展开的例子如下:

  • a{b,c}d展开为 abd,acd
  • a{b,}c展开的结果为 abc,ac
  • a{0…3}d展开的结果为a01,a02,a03
  • a{b,c{d,e}f}g 会展开为 abg,acdfg,acefg
  • a{b,c}d{e,f}g 会展开为 abdeg,acdeg,abdeg,abdfg
相关标签: gulp

推荐阅读