Node.js Gulp src / hand 4.0行为与Gulp 3.6

问题描述 投票:2回答:1

我的问题快速摘要:

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

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

使用上面的代码运行Gulp 3.6.0产生了这个结果:

enter image description here

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

-app
-assets
-config
favicon.ico

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

enter image description here

我知道在通过管道传输时,默认情况下会将glob-base添加到目标,但是这种行为与gulp在3.6.0中处理镜像源到目标文件目录结构的方式不同?这个例子不同意。

如果有人能为我提供一个解决方案来生成与我的3.6.0结果中提供的相同的文件夹结构,这将是很好的。我已经尝试了gulp-flatten和gulp-rename但是没有任何东西能够产生所需的结果,只能很好地去除glob-base。

node.js gulp
1个回答
0
投票

所以我仍然不确定升级到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));
}
© www.soinside.com 2019 - 2024. All rights reserved.