使用Gulp从多个目录移动文件也会复制目录
我正在设置gulp,将不同模块中的所有html文件移动到一个视图文件夹中。在模块文件夹内,每个模块文件夹具有相同的结构 modulename/client/views/anyFile.html 我已经编写了吞咽任务“移动html”使用Gulp从多个目录移动文件也会复制目录,gulp,Gulp,我正在设置gulp,将不同模块中的所有html文件移动到一个视图文件夹中。在模块文件夹内,每个模块文件夹具有相同的结构 modulename/client/views/anyFile.html 我已经编写了吞咽任务“移动html” gulp.task('move-html', function(){ return gulp.src('./modules/*/client/views/*.html') .pipe(htmlmin({ collapseWhitespace: true
gulp.task('move-html', function(){
return gulp.src('./modules/*/client/views/*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest('./public/views'));
});
我希望所有模块中的所有html文件都复制到./public/views,但我发现整个模块结构都被复制了
预期:
index.html
实际产量:
应用程序
|-客户
|-观点
|-index.html
我猜这与模块后面的星号有关,但找不到任何替代方法的答案
当我在gulp.src中使用文件名时,它可以正常工作,例如../modules/app/client/views/*.html您是对的,
*
前面的路径部分在这里很重要。它将形成路径的基础。但那不是你想要的。您希望删除包含并遵循*
的部分路径。最简单的方法是使用一个包来删除指定的父目录
在您的情况下,您可以这样简单地将它们全部删除:
.pipe(flatten())
只保留文件名本身,然后您可以将其放入您想要的任何目录中。因此:
const flatten = require("gulp-flatten");
gulp.task('move-html', function(){
return gulp.src('./modules/**/client/views/*.html')
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(flatten())
.pipe(gulp.dest('./public/views'));
});
现在,您将得到您想要的
/public/views/*.html。非常感谢您的快速回复,这正是我所需要的。如果您觉得答案有用且准确,请不要忘记接受答案。谢谢(单击复选标记)完成。再次感谢你,巴德