【问题标题】:Node.js Gulp src/dest 4.0 behaviour vs Gulp 3.6Node.js Gulp src/dest 4.0 行为与 Gulp 3.6
【发布时间】:2019-03-19 17:17:43
【问题描述】:

我的问题的快速总结:

Gulp 3.6.0 dest() 处理 glob-base 的方式与 4.0.0 相同吗?

function other() {
    return src([
        path.join("src/**/*"),
        path.join("!src/**/*.{html,css,js,scss}")
    ])
    .pipe(fileFilter)
    .pipe(dest(dist));
}

使用上面的代码运行 Gulp 3.6.0 会产生以下结果:

请注意,此代码添加到 dist 文件夹的相关文件夹和文件是:

-app
-assets
-config
favicon.ico

现在在 4.0.0 中运行相同的代码会产生这样的结果:

我知道 glob-base 在通过管道传输时默认添加到目标,但是这种行为与 gulp 在 3.6.0 中处理镜像源到目标文件目录结构的方式不同吗?该示例会提出其他建议。

如果有人可以为我提供一个解决方案来生成与我的 3.6.0 结果中提供的相同的文件夹结构,那就太好了。我已经尝试过 gulp-flatten 和 gulp-rename ,但没​​有产生理想的结果,即仅移除 glob-base。

【问题讨论】:

    标签: node.js gulp


    【解决方案1】:

    所以我仍然不确定升级到 Gulp 4.0 对 glob-parent/glob-base 的处理方式的实际意义是什么,但是我设法使用 base 选项获得了我需要的东西。

    此选项有效地取消了路径中 /**/ 之前的附加 src 硬编码路径引用。

    function other() {
    
    var fileFilter = plugins.filter(function(file) {
        return file.stat.isFile();
    });
    
    var appFilter = plugins.filter(function(file) {
        return file.path.indexOf("\\src\\app\\") === -1;
    });
    
    return src(path.join(conf.paths.src, "/**/*"), { base: conf.paths.src })
        .pipe(appFilter)
        .pipe(fileFilter)
        .pipe(dest(conf.paths.dist));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2016-11-04
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      相关资源
      最近更新 更多