无法使用 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 并创建单个任务来解决问题
我遇到了最奇怪的行为。
我有一个 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 并创建单个任务来解决问题