【发布时间】:2016-01-29 07:05:41
【问题描述】:
我正在尝试通过 bower 安装软件包,安装完成后,我希望将文件从 dist 文件夹移动到其父文件夹,然后删除 dist 文件夹。但不知何故,它无法正常工作。
var gulp = require('gulp'),
bower = require('gulp-bower'),
del = require('del'),
fs = require('fs'),
path = require('path'),
merge = require('merge-stream');
vinylPaths = require('vinyl-paths');
runSequence = require('run-sequence');
var appPath="./www";
var folders = getFolders(appPath);
/* Function to get folders present in www */
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
gulp.task('clean', function (){
var tasks = folders.map(function(folder) {
return gulp.src(path.join(appPath, folder))
.pipe(vinylPaths(del))
});
});
/* Gulp task to run bower install */
gulp.task('bower', ['clean'], function() {
return bower({cmd: "install"});
});
/* Gulp task to copy files from dist folder to their parent folders */
gulp.task('moveFiles', ['bower'], function (){
var tasks = folders.map(function(folder) {
console.log("FOLDER", folder);
return gulp.src(path.join(appPath, folder, '/dist/**/*'))
.pipe(gulp.dest(path.join(appPath, folder )));
});
return tasks;
});
/* Gulp task to clean the dist folder after files have been copied */
gulp.task('delete-dist-folder', ['moveFiles'], function () {
var tasks = folders.map(function(folder) {
return gulp.src(path.join(appPath, folder, '/dist'))
.pipe(vinylPaths(del))
});
return tasks;
});
gulp.task('default', ['delete-dist-folder']);
这是我写到现在的。 凉亭之后,其余两个任务不运行。但如果我单独运行它们,它们就可以正常工作。
我无法弄清楚这里出了什么问题。任何帮助将不胜感激。
【问题讨论】:
-
在
clean任务中,您不会返回。如果您想通过管道传输多个流,您可能需要查看map-stream。 -
@MarcoL:感谢您的建议。我试试看。