如何在Gulp src和dist中将文件从**设置复制到另一个?

时间:2015-05-20 19:54:14

标签: gulp src base

我有一些问题无法直接回答这个问题。 我有一个像这样的文件夹结构:

modules/**/views/**/*.html
  • 模块/购物车/视图/模板/
  • 模块/购物车/视图/内容/
  • 模块/购物车/视图/内容/富/

我想移动他们,所以他们最终会这样:

  • 查看/模板/
  • 查看/内容/
  • 查看/内容/富/

我尝试过base:和cwd:with

{ base: 'modules/**/views/**' }

还有。和./ etc ..但是不能让它与两个**一起工作**我不想要第二个**和它的文件夹中的第一个**文件

有任何线索吗?它甚至有用吗?试过

2 个答案:

答案 0 :(得分:0)

我通过使用gulp-rename找到了解决方案。 不确定它是否是最好的但是有效。 我分开了我的道路。得到第一个**的名字 将其重命名为空值,与视图相同。

return gulp.src(config.vSrc)
        .pipe(rename(function(path) {
            var splitedPath = path.dirname.split('\\');
            var moduleName = splitedPath[0];
            path.dirname = path.dirname.replace(moduleName, '').replace('views', '');
            gutil.log(path.dirname);
        }))
        .pipe(gulp.dest("Views"));

答案 1 :(得分:0)

要更新此答案,现在使用gulp-flatten进行此操作的好方法。它非常适合从文件夹层次结构中提取特定文件夹。我相信OP的情况是他想要的:

gulp.src(['config.vSrc'])
  .pipe(flatten({ subPath: [3] }))
  .pipe(gulp.dest('Views'));

那应该打开第4个等文件夹。你可能需要这种语法:

subPath:[3,]我不确定没有测试它。