Javascript Gulp同步任务问题
我试图收集在1中调试所需的3个任务。当然,由于gulp的本质是异步的,所以我对此有问题。所以我搜索并找到了一个解决方案,使用运行序列模块来解决这个问题。我尝试了以下代码,但似乎没有按预期工作。它没有同步。 这是我试过的。有什么想法吗,伙计们?我不想运行这三个命令来完成所有任务。我该怎么做Javascript Gulp同步任务问题,javascript,node.js,gulp,Javascript,Node.js,Gulp,我试图收集在1中调试所需的3个任务。当然,由于gulp的本质是异步的,所以我对此有问题。所以我搜索并找到了一个解决方案,使用运行序列模块来解决这个问题。我尝试了以下代码,但似乎没有按预期工作。它没有同步。 这是我试过的。有什么想法吗,伙计们?我不想运行这三个命令来完成所有任务。我该怎么做 var gulp = require('gulp'), useref = require('gulp-useref'), gulpif = require('gulp-if'), deb
var gulp = require('gulp'),
useref = require('gulp-useref'),
gulpif = require('gulp-if'),
debug = require('gulp-debug'),
rename = require("gulp-rename"),
replace = require('gulp-replace'),
runSequence = require('run-sequence'),
path = '../dotNet/VolleyManagement.UI';
gulp.task('debug', function () {
gulp.src('client/*.html')
.pipe(debug())
.pipe(gulp.dest(path + '/Areas/WebAPI/Views/Shared'));
});
gulp.task('rename', function () {
gulp.src(path + '/Areas/WebAPI/Views/Shared/index.html')
.pipe(rename('/Areas/WebAPI/Views/Shared/_Layout.cshtml'))
.pipe(gulp.dest(path));
gulp.src(path + '/Areas/WebAPI/Views/Shared/index.html', {read: false})
.pipe(clean({force: true}));
});
gulp.task('final', function(){
gulp.src([path + '/Areas/WebAPI/Views/Shared/_Layout.cshtml'])
.pipe(replace('href="', 'href="~/Content'))
.pipe(replace('src="', 'src="~/Scripts'))
.pipe(gulp.dest(path + '/Areas/WebAPI/Views/Shared/'));
});
gulp.task('debugAll', runSequence('debug', 'rename', 'final'));
在gulp中,您实际上可以设置从属任务。试试这个:
gulp.task('debug', function () {
//run debug task
});
gulp.task('rename',['debug'], function () {
//run rename once debug is done
});
我认为您没有正确定义“debugAll”任务。试着这样做:
gulp.task('debugAll', function () {
runSequence('debug', 'rename', 'final');
});
您还需要为这些任务返回流,只需在gulp.src前面为每个任务添加“return”:debug、rename、final。以下是“调试”任务的示例:
gulp.task('debug', function () {
return gulp.src('client/*.html')
.pipe(debug())
.pipe(gulp.dest(path + '/Areas/WebAPI/Views/Shared'));
});
这两项都在文档中提到:我尝试过,但问题是它也异步运行…'“重新命名”后,“调试”任务完成是的,我的错。但我现在尝试使用正确的语法,但它一个接一个地不起作用…在开始时没有看到它,但实际上需要返回这些任务的流。只需在gulp.src前面为每个任务添加“return”——调试、重命名、最终。对于上面的@ramesh-answer,同样的问题——您不返回流。文档中也提到了这一点:这正是我错过的!谢谢你指出这一点,现在一切都很好:)P.S.你能用上面的信息编辑你的答案吗,这样我就可以把你的答案标记为已接受?