我最近安装了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] 删除。
我来说两句