0

我有一个 gulp 任务将我的 .less 文件转换为 css。这可以正常工作,直到 less 文件中出现语法错误。这会导致 gulp 崩溃,Task Runner Explorer 停止,我无法重新启动它。我必须卸载/重新加载项目以更改语法错误。

任何想法如何重新启动 Task Runner Explorer?

4

2 回答 2

1

我正在使用 Visual Studio 2017,在任务运行器资源管理器中,您可以右键单击我不想运行的任务,然后您可以按运行开始该任务图片:https ://i.stack.imgur.com/gHYFy .png

于 2018-06-19T13:41:32.880 回答
0

任务可以随时启动和重新启动。非终止任务,如“监视”任务,可以多次启动,并且将并行运行,除非终止。启动任务的一种方法是在列表中双击它。上下文菜单中还有一个“运行”命令。

任务上下文菜单

终止任务

我今天也有同样的问题,但出于其他原因。显然关闭关联的控制台窗口会终止任务。

任务运行程序提示终止进程

我记得在一些旧版本的 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();
});
于 2021-02-25T14:36:58.587 回答