不能用gulp复制深层文件夹结构

时间:2015-07-31 21:24:51

标签: node.js stream gulp

我得到了最奇怪的行为。

我有一个gulp文件,它有三个任务。干净,将一堆东西复制到文件夹,将整个文件夹复制到其他目的地。

似乎复制整个文件夹的MOST,但是将某些文件夹留空。没有押韵或理由,它们都是容器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(第一个任务)。也 我已经尝试过几乎所有依赖关系的可变排列,例如["清洁"]

1 个答案:

答案 0 :(得分:0)

以下任务定义不正确

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并创建单个任务来解决问题