当前位置: 首页 > 知识库问答 >
问题:

如何使用gulp递归复制目录?

段干安和
2023-03-14

我试图阶段一个项目从工作目录到服务器(同一台机器)。使用以下代码:

gulp.src([
    'index.php',
    'css/**',
    'js/**',
    'src/**',
])
.pipe(gulp.dest('/var/www/'));

我希望看到所有的文件都被复制。但是,它使目录结构扁平化-所有目录都被复制,但每个文件都放在根目录中/var/www

Gulp看起来是一个很好的构建工具,但是复制项目应该是一个简单的过程吗?

共有3个答案

微生俊健
2023-03-14

因此,如果所有路径都具有相同的基本路径,那么提供基本路径的解决方案是有效的。但是如果您想提供不同的基本路径,这仍然不起作用。

我解决这个问题的一个方法是使路径的开头相对。对于您的情况:

gulp.src([
    'index.php',
    '*css/**/*',
    '*js/**/*',
    '*src/**/*',
])
.pipe(gulp.dest('/var/www/'));

这样做的原因是Gulp将base设置为第一个显式块的结尾-前导*导致它将base设置为cwd(这是我们都想要的结果!)

只有在确保文件夹结构不会有可能匹配两次的特定路径时,这才有效。例如,如果您的randomjs/js处于同一级别,那么您最终将两者匹配。

这是我发现的唯一一种将这些作为顶级饮品的一部分的方法。src函数。然而,创建一个插件/函数,将这些glob中的每一个分离出来,这样您就可以为它们指定基本目录,这可能很简单。

高溪叠
2023-03-14

事实证明,要复制完整的目录结构gulp,需要为gulp提供一个基础。src()方法。

所以gulp.src([file ], { "base": "." })可以在上面的结构中用于递归复制所有目录。

如果,像我一样,你可能会忘记这一点,那么尝试:

gulp.copy=function(src,dest){
    return gulp.src(src, {base:"."})
        .pipe(gulp.dest(dest));
};
长孙正卿
2023-03-14

以下操作可以在不展平文件夹结构的情况下工作:

gulp.src(['input/folder/**/*']).pipe(gulp.dest('output/folder'));

<代码>'**/*' 是重要的部分。这个表达式是一个Glob,它是一个强大的文件选择工具。例如,仅复制. js文件使用:'输入/文件夹/**/*. js'

 类似资料:
  • 问题内容: Python似乎具有复制文件的功能(例如)和复制目录的功能(例如),但是我还没有找到能够同时处理两者的函数。当然,检查要复制文件还是目录很简单,但这似乎很奇怪。 确实没有像unix命令那样工作的标准函数,即同时支持目录和文件以及递归复制吗?在Python中解决此问题的最优雅方法是什么? 问题答案: 建议您先致电,如果引发异常,请重试。

  • 问题内容: 我曾经复制过一个目录树,但是已经过时了。我的目录包含一些子目录,其中一些包含文件,另一些包含更多子目录。 如何复制整棵树? 问题答案: 相信可以做到您想要的…(递归复制已完成)

  • 问题内容: 我正在尝试将其所有内容(及其内容等)复制到python中。此外,我希望副本覆盖中的所有内容。 它 看起来 像可能是这个职位的合适的工具,但不能肯定是否有什么更容易/更明显,使用这样一个简单的任务。 如果它是正确的工具,该如何使用?根据文档,它需要8个参数。我是否必须通过所有8个just ,和,如果是,则通过(我是Python的新手)。 如果有更好的东西,有人可以给我一个例子,指出正确的

  • 问题内容: 我想通过SSH递归下载目录,目录内容未知,并且一直在尝试Paramiko。我已经看到了几个如何上传目录的示例,但没有一个涉及递归下载。 我可以列出目录中的所有项目,但无法找到一种方法来知道该项目是文件(下载)还是目录(递归调用)。 那么我怎么知道一个项目是文件还是目录? 问题答案: …假设是开放的Paramiko SFTP连接。

  • 我还发现了这个使用的网页,但我还是不明白如何将其应用于我的情况?

  • 本文向大家介绍php通过递归方式复制目录和子目录的方法,包括了php通过递归方式复制目录和子目录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php通过递归方式复制目录和子目录的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。