无法使用 gulp 复制深层文件夹结构

can't copy deep folder structure with gulp

我遇到了最奇怪的行为。

我有一个 gulp 文件,它包含三个任务。 clean, copy a bunch of stuff to a folder, copy entire folder to other destination.

它似乎复制了整个文件夹的大部分内容,但将某些文件夹留空。没有任何韵律或原因,它们都是容器 javascript 文件和文件夹的文件夹。没有意义。

这是我得到的。

gulp.task('clean', function(cb) {
    del([config.get("deploy.output.deploy"), config.get("deploy.buildDirectory")],{force:true}, cb);
});

gulp.task("copy-source",["clean"], function () {
    gulp.src("src/**")
        .pipe(gulp.dest(config.get("deploy.output.app")+"/src"));
    gulp.src(["package.json", "server.js", "bootstrap.js"])
        .pipe(gulp.dest(config.get("deploy.output.app")));
    gulp.src("config/**")
        .pipe(gulp.dest(config.get("deploy.output.app")+"/config"));
    return gulp.src("deploy/*")
        .pipe(gulp.dest(config.get("deploy.output.deploy")));
});

gulp.task("copy-to-buildDir",["copy-source"], function () {
    return gulp.src(config.get("deploy.output.deploy")+"/**")
        .pipe(gulp.dest(config.get("deploy.buildDirectory")));
});

gulp.task("deploy",[ "copy-to-buildDir"]);

src文件夹结构是这样的,多多少少明显是psudo结构

output
└── app
    ├── config
    │   └── file7.js
    ├── src
    │   ├── modules
    │   │   ├── ges
    │   │   │   ├── file1.js
    │   │   │   └── file2.js
    │   │   └── file3.js
    │   ├── file4.js
    │   └── controllers
    │       └── file5.js
    └── file6.js

dest 文件夹结构如下所示

output
└── app
    ├── src
    │   ├── modules
    │   │   └── EMPTY
    │   └── controllers
    │       └── file5.js
    └── file6.js

所以模块和控制器是姐妹,一个有文件一个没有。没有意义。

如果您有任何想法,我将不胜感激。

每次都可以构建 src(第一个任务)。还 我已经尝试了几乎所有可以想象的依赖关系排列,例如["clean"]

下面的任务定义不正确

gulp.task("copy-source",["clean"], function () {
    gulp.src("src/**")
        .pipe(gulp.dest(config.get("deploy.output.app")+"/src"));
    gulp.src(["package.json", "server.js", "bootstrap.js"])
        .pipe(gulp.dest(config.get("deploy.output.app")));
    gulp.src("config/**")
        .pipe(gulp.dest(config.get("deploy.output.app")+"/config"));
    return gulp.src("deploy/*")
        .pipe(gulp.dest(config.get("deploy.output.deploy")));
});

您正在执行 4 个副本,但只检查最终副本流的结尾。

将它们分成 4 个任务或合并 src 并创建单个任务来解决问题