因此 - 假设所有路径具有相同的基本路径,则提供基础的解决方案。但是,如果您想提供不同的基本路径,这仍然无法正常工作。
我解决这个问题的一种方法是使路径的起点相对。 对于你的情况:
gulp.src([ 'index.php', '*css/**/*', '*js/**/*', '*src/**/*', ]) .pipe(gulp.dest('/var/www/'));
这样做的原因是Gulp将基数设置为第一个显式块的结尾 - 前导*使它在cwd处设置基数(这是我们都想要的结果!)
这仅在您确保文件夹结构不具有可匹配两次的特定路径时才有效。例如,如果你有 randomjs/ 与...相同的水平 js ,你最终会匹配两者。
randomjs/
js
这是我发现将这些作为顶级gulp.src函数的一部分包含在内的唯一方法。创建一个插件/函数可能很简单,可以将每个glob分开,以便为它们指定基本目录。
事实证明,要复制一个完整的目录结构 gulp 需要为您提供基础 gulp.src() 方法。
gulp
gulp.src()
所以 gulp.src( [ files ], { "base" : "." }) 可以在上面的结构中用于递归复制所有目录。
gulp.src( [ files ], { "base" : "." })
如果像我一样,你可能会忘记这一点,那么试试:
gulp.copy=function(src,dest){ return gulp.src(src, {base:"."}) .pipe(gulp.dest(dest)); };
如果要将文件夹的全部内容递归复制到另一个文件夹,可以从gulp执行以下windows命令:
xcopy /path/to/srcfolder /path/to/destfolder /s /e /y
该 /y 最后的选项是禁止覆盖确认消息。
/y
在Linux中,您可以从gulp执行以下命令:
cp -R /path/to/srcfolder /path/to/destfolder
您可以使用 的 吞掉-EXEC 强> 要么 的 吞掉运行 强> 插件从gulp执行系统命令。
相关链接:
xcopy用法
吞掉-EXEC 和 吞掉运行