我有一个 gulp 任务将我的 .less 文件转换为 css。这可以正常工作,直到 less 文件中出现语法错误。这会导致 gulp 崩溃,Task Runner Explorer 停止,我无法重新启动它。我必须卸载/重新加载项目以更改语法错误。
任何想法如何重新启动 Task Runner Explorer?
我有一个 gulp 任务将我的 .less 文件转换为 css。这可以正常工作,直到 less 文件中出现语法错误。这会导致 gulp 崩溃,Task Runner Explorer 停止,我无法重新启动它。我必须卸载/重新加载项目以更改语法错误。
任何想法如何重新启动 Task Runner Explorer?
我正在使用 Visual Studio 2017,在任务运行器资源管理器中,您可以右键单击我不想运行的任务,然后您可以按运行开始该任务图片:https ://i.stack.imgur.com/gHYFy .png
任务可以随时启动和重新启动。非终止任务,如“监视”任务,可以多次启动,并且将并行运行,除非终止。启动任务的一种方法是在列表中双击它。上下文菜单中还有一个“运行”命令。
我今天也有同样的问题,但出于其他原因。显然关闭关联的控制台窗口会终止任务。
我记得在一些旧版本的 Visual Studio 中,我必须手动打开 Task Runner Explorer,否则任务将无法启动。
为了避免重新启动任务的麻烦,添加某种类型的错误处理。可能有更多解决方案,但我使用了这个。这是一个较短的版本:
const gulp = require('gulp');
const plumber = require('gulp-plumber');
const lessCompiler = require('gulp-less');
const lessFiles = 'Styles/**/*.less';
const compileLessTaskName = 'compile-Less';
gulp.task(compileLessTaskName, function () {
return gulp.src(lessFiles)
// Calling plumber at the start of the pipeline. In case of error, this stops
// the task without killing the whole process.
.pipe(plumber(function (error) {
console.log(error.message);
this.emit('end');
}))
.pipe(lessCompiler())
.pipe(gulp.dest('wwwroot/css'));
});
gulp.task('watch', function (asyncCallback) {
gulp.watch(lessFiles, [compileLessTaskName]);
asyncCallback();
});