阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

    教程列表

    数据库
    抓包专区
    测试专区

    Gulp src()

    src()

    创建一个流,用于从文件系统读取 Vinyl 对象。

    **注:**BOMs(字节顺序标记)在 UTF-8 中没有任何作用,除非使用 removeBOM 选项禁用,否则 src() 将从读取的 UTF-8 文件中删除 BOMs。

    基本用法

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

    函数原型

    src(globs, [options])
    

    参数

    参数 类型 描述
    globs string / array 在系统上的想要处理的文件
    options object 在下面的选项中详细说明。

    返回值

    返回一个可以在管道的开始或中间使用的流,用于根据给定的 globs 添加文件。

    可能出现的错误

    • “File not found with singular glob”
    • “Invalid glob argument”

    选项

    对于接受函数的选项,传递的函数将与每个 Vinyl 对象一起调用,并且必须返回另一个列出类型的值。

    名称 类型 默认值 描述
    buffer boolean
    function
    true 当为 true 时,文件内容被缓冲到内存中。
    如果为 false,Vinyl 对象的 contents 属性将是一个暂停流,可能无法缓冲大文件的内容。
    注意:第三方插件可能不支持流媒体内容。
    read boolean
    function
    true 如果为 false,文件将不会被读取,并且它们的 Vinyl 对象将不能通过 .dest() 写入磁盘。
    since date
    timestamp
    function
    设置时,仅为自指定时间以来修改过的文件创建 Vinyl 对象。
    removeBOM boolean
    function
    true 如果为 true,则从 UTF-8 编码的文件中删除 BOM。
    如果为 false,则忽略 BOM。
    sourcemaps boolean
    function
    false 如果为 true,则在创建的 Vinyl 对象上启用 sourcemaps
    加载内联 sourcemaps 并解析外部 sourcemap 链接。
    resolveSymlinks boolean
    function
    true true 时,递归地解析链接到目标的符号 (symbolic) 链接。
    如果为 false,则保留符号链接并将 Vinyl 对象的 symlink 属性设置为原始文件的路径。
    cwd string process.cwd() 将与任何相对路径相结合以形成绝对路径的目录。对于绝对路径忽略。用于避免将 globs 与 path.join() 相结合。
    此选项直接传递给 glob-stream
    base string 显式地在创建的 Vinyl 对象上设置 base 属性。详情请参见 glob-base
    此选项直接传递给 glob-stream
    cwdbase boolean false 如果为 true,cwdbase 选项应该对应起来。
    此选项直接传递给 glob-stream
    root string 解析 globs 的根路径。
    此选项直接传递给 glob-stream
    allowEmpty boolean false 当为 false 时,只能匹配一个文件的 globs (如 foo/bar.js) 如果没有找到匹配的文件,就会引发一个错误。
    如果为 true 的,则不会报错。
    此选项直接传递给 glob-stream
    uniqueBy string
    function
    'path' 通过比较字符串属性名或函数的结果,从流中删除重复项。
    **注意:**当使用函数时,函数接收流数据(对象包含 cwdbasepath 属性)。
    dot boolean false 如果为 true,请将 globs 与 .gitignore 等点文件进行比较。
    此选项直接传递给 node-glob
    silent boolean true 如果为 true,则禁止在 stderr 上打印警告。
    注意: 此选项直接传递给 node-glob,但默认为 true 而不是 false
    mark boolean false 如果为 true,将向目录匹配项追加一个 / 字符。通常不需要,因为路径是在管道中规范化的
    此选项直接传递给 node-glob
    nosort boolean false 如果为 true,禁用对 glob 结果排序。
    此选项直接传递给 node-glob
    stat boolean false 如果为 true, fs.stat() 在所有的结果上被调用。这增加了额外的开销,通常不应该使用。
    此选项直接传递给 node-glob
    strict boolean false 如果为 true,如果在尝试读取目录时遇到意外问题,将抛出错误。
    此选项直接传递给 node-glob
    nounique boolean false 当为 false 时,可以防止结果集中出现重复的文件。
    此选项直接传递给 node-glob
    debug boolean false 如果为 true,调试信息将被记录到命令行。
    此选项直接传递给 node-glob
    nobrace boolean false 如果为 true,避免扩大大括号集合 - 例如 {a,b}{1..3}.
    此选项直接传递给 node-glob
    noglobstar boolean false 如果为 true,将双星(**) glob 字符视为单星 (*) glob 字符
    此选项直接传递给 node-glob
    noext boolean false 如果为 true,避免匹配 extglob 模式 - 例如 +(ab).
    此选项直接传递给 node-glob
    nocase boolean false 如果为 true,则执行不区分大小写的匹配。
    注意: 在不区分大小写的文件系统上,默认情况下,non-magic 模式将被匹配。
    此选项直接传递给 node-glob
    matchBase boolean false 如果 true 并且 globs 不包含任何 / 字符,遍历所有目录并匹配该 glob —— *.js 将被视为等同于 **/*.js
    此选项直接传递给 node-glob
    nodir boolean false 若要仅匹配目录,glob 请以 / 结束。
    此选项直接传递给 node-glob
    ignore string
    array
    从匹配中排除。这个选项与否定的 (negated) globs 组合在一起。
    注意: 无论其他设置如何,这些 globs 总是与点文件匹配。
    此选项直接传递给 node-glob
    follow boolean false 如果为 true,在展开 ** globs 时将遍历符号链接目录。
    注意: 这可能导致循环链接出现问题。
    此选项直接传递给 node-glob
    realpath boolean false 如果为 true,fs.realpath() 在所有的结果上调用。这可能导致悬挂式(dangling)链接。
    此选项直接传递给 node-glob
    cache object 之前生成的缓存对象——避免了一些文件系统调用。
    此选项直接传递给 node-glob
    statCache object 之前生成的 fs.Stat 缓存——避免了一些文件系统调用。
    此选项直接传递给 node-glob
    symlinks object 之前生成的符号链接缓存——避免了一些文件系统调用。
    此选项直接传递给 node-glob
    nocomment boolean false 当为 false 时,将 glob 开头的 # 字符视为注释。
    此选项直接传递给 node-glob

    资源映射

    资源映射支持直接构建到 src()dest() 中,但是默认情况下是禁用的。使其能够生成内联或外部资源映射。

    内联资源映射

    const { src, dest } = require('gulp');
    const uglify = require('gulp-uglify');
    
    src('input/**/*.js', { sourcemaps: true })
      .pipe(uglify())
      .pipe(dest('output/', { sourcemaps: true }));
    

    外部资源映射

    const { src, dest } = require('gulp');
    const uglify = require('gulp-uglify');
    
    src('input/**/*.js', { sourcemaps: true })
      .pipe(uglify())
      .pipe(dest('output/', { sourcemaps: '.' }));
    
    卖前端学习教程

    只需几十元,就能买到培训班的内部教程!开启高薪之路!

    零基础小白阿里P7的教程都有!

    同时长期收购所有培训班的前端教程

    目录
    目录