Javascript Gulp复制文件夹结构,但仅对文件进行符号链接

Javascript Gulp复制文件夹结构,但仅对文件进行符号链接,javascript,gulp,Javascript,Gulp,我有一个特定文件夹结构的项目和一个基本相同的项目,只是一些文件不同 我想编写一个gulp任务(或多个任务),复制第一个项目文件夹结构,但只为文件创建symlinks,并且不覆盖其他项目中已有的文件 我发现我可以用gulp和vinyl fs创建symlinks 我尝试创建一个两步任务。首先,我试图复制文件夹结构,但我不知道如何告诉gulp我只关心文件夹结构 其次,我想创建一个symlink任务,在正确的目录中创建symlinks 也许,我可以使用函数参数仅使用乙烯基fs的符号链接创建它,但我不知道

我有一个特定文件夹结构的项目和一个基本相同的项目,只是一些文件不同

我想编写一个
gulp任务
(或多个任务),复制第一个项目文件夹结构,但只为文件创建
symlinks
,并且不覆盖其他项目中已有的文件

我发现我可以用
gulp
vinyl fs
创建
symlinks

我尝试创建一个两步任务。首先,我试图复制文件夹结构,但我不知道如何告诉gulp我只关心文件夹结构

其次,我想创建一个
symlink
任务,在正确的目录中创建
symlinks


也许,我可以使用函数参数仅使用
乙烯基fs
的符号链接创建它,但我不知道如何创建。

您似乎可以这样做,只复制文件夹(排除
*.
):

假设所有文件都有某种扩展名(例如
*.jpg

对于
符号链接
,下列操作不起作用吗

var vfs = require('vinyl-fs');

...
vfs
    .src('base/path/**/*', { followSymlinks: false, nodir: true })
    .pipe(vfs.symlink('target'));
...

是的,但我还是得到了文件夹下所有文件的复制,并且是递归的。确切地说,我尝试了以下方法:
gulp.src('base/**').pipe(gulp.dest('target/'))
进行符号链接,我发现我可以使用函数参数并返回要为给定文件创建符号链接的文件夹。类似这样:
vfs.src('base/**',{nodir:true}).pipe(vfs.symlink((file)=>{return
target/${file.relative}
;});
问题是,亲戚返回了带有文件名的路径(应该是这样的)但我只需要文件夹。对于文件夹结构,它工作得很好。现在,我必须弄清楚如何将文件符号链接到正确的文件夹中。哦,我以前应该考虑过这一点!是的,这很好!我甚至不需要两个步骤。符号链接也会为链接创建文件夹。我将此标记为答案。
var vfs = require('vinyl-fs');

...
vfs
    .src('base/path/**/*', { followSymlinks: false, nodir: true })
    .pipe(vfs.symlink('target'));
...