Gulp 4 Glob排除无法使用的特定文件和文件夹

奥比万内山

我最近安装了gulp 4(从3.9.1起),但在使我的glob像以前一样工作时遇到了问题。

我有一个要转移的完整目录[少了一些其他子目录和文件]。

以下是相关代码:

var path_in_str = 'my_input_dir/';
var path_out_str = 'my_output_dir/';

return gulp.src([path_in_str+'**', path_in_str+'.*', '!'+path_in_str+'node_modules', '!'+path_in_str+'node_modules/**', '!'+path_in_str+'*.json'], {dot: true})
    .pipe(gulp.dest(path_out_str));

基本上,我试图阻止node_modules文件夹的传输,并且我也想阻止.json主文件夹中的所有文件被传输。

发生的情况是node_modules仅传送了[无内容]目录。另外,所有.json文件都正在传输。

我该如何调整此方法以解决Gulp 4处理glob的方式(因为它似乎已略有变化)?

奥比万内山

我无法将其与本机gulp一起使用,因此我想尝试使用node glob包,并且该选项似乎在用例中效果最佳。

首先,您需要像这样安装它:

npm install glob --save-dev

然后在您的gulp gile中引用它:

var gp_glob = require('glob');

最后,将其用作全局过滤器:

var input_list_arr = gp_glob.sync(path_in_str+'**', {ignore: [path_in_str+'node_modules/**', path_in_str+'*.json'], dot: true});

return gulp.src(input_list_arr, {base: path_in_str})
    .pipe(gulp.dest(path_out_str));  

请注意,我们使用的是ignore选项而不是!符号来过滤文件/目录路径。另请注意,将base过滤后的列表传递到中时,将指定选项gulp.src

这为我按预期工作。希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章