【问题标题】:Gulp copy folder structure, but only symlink the filesGulp 复制文件夹结构,但仅对文件进行符号链接
【发布时间】:2017-08-12 20:15:59
【问题描述】:

我有一个具有一定文件夹结构的项目和另一个应该基本相同的项目,只有一些文件不同。

我想写一个gulp-task(或任务)来复制第一个项目文件夹结构,但只为文件创建symlinks,并且不要覆盖文件已经在另一个项目。

我发现我可以用gulpvinyl-fs 创建symlinks

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

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

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

【问题讨论】:

  • 是的,但是我仍然复制了文件夹下的所有文件,并且递归地复制了。确切地说,我试过这个:gulp.src('base/**').pipe(gulp.dest('target/'))
  • 对于符号链接,我发现我可以使用函数参数并返回要为给定文件创建符号链接的文件夹。像这样:vfs.src('base/**', { nodir: true }).pipe(vfs.symlink((file) => { return target/${file.relative};}); 问题在于,相对人正在返回带有文件名的路径(应该如此),但我只需要文件夹。

标签: javascript gulp


【解决方案1】:

您似乎可以这样做以仅复制文件夹(不包括*.*):

gulp
    .src(['base/path/**/*', '!base/path/**/*.*'])
    .pipe(gulp.dest('target'));

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

对于symlinks,以下操作不起作用吗?:

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

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

【讨论】:

  • 文件夹结构可以正常工作。现在,我必须弄清楚如何将文件符号链接到正确的文件夹中。
  • 哦,我以前应该对此有所了解的!是的,这工作得很好!我什至不需要两个步骤。符号链接也将为链接创建文件夹。我将此标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
相关资源
最近更新 更多