VS2017 Task Runner Explorer 找不到任务

VS2017 Task Runner Explorer No Tasks Found

我正在尝试在 VS 2017 中的 MVC 核心项目中设置 gulp。我认为这是有效的 gulpfile.js:

var gulp = require('gulp');
var rimraf = require('rimraf');
var concat = require('gulp-concat');
var cssmin = require('gulp-cssmin');
var uglify = require( 'gulp-uglify' );

var paths = {
    webroot: './wwwroot/',
};

paths.js = paths.webroot + 'js/**/*.js';
paths.minJs = paths.webroot + 'js/**/*.min.js';
paths.css = paths.webroot + 'css/**/*.css';
paths.minCss = paths.webroot + 'css/**/*.min.css';
paths.concatJsDest = paths.webroot + "js/site.min.js";
paths.concatCssDest = paths.webroot + "css/site.min.css";

gulp.task("clean:js", function (cb) {
    rimraf(paths.concatJsDest, cb);
});

gulp.task("clean:css", function (cb) {
    rimraf(paths.concatCssDest, cb);
});

gulp.task( "clean", ["clean:js", "clean:css"] );

但是当我打开 Task Runner Explorer 时,我收到消息“(未找到任务)”。

我已经检查以确保所有 gulp 包都是通过 npm 安装的。我还添加了一个 package.json 文件。但是仍然找不到任务。

我做错了什么?

显然,您必须在项目中本地安装 gulp 才能使其与 Visual Studio 一起正常工作。全局安装将不起作用。删除全局副本并在本地安装解决了问题。

我遇到了同样的问题,并在 运行 执行了两个命令后解决了这个问题。请参考以下流程:

1) 右击 visual-studio 中的 gulp 文件,然后选择 "Open Command Line > PowerShell"

2) 运行 命令 npm install gulp 安装 gulp。 (你必须在你的项目中安装gulp,不管你是否已经全局安装了gulp,但在这种情况下你必须在你的项目中安装gulp)

然后按回车键。

3) 执行命令后转到 Visual-Studio 中的任务 运行ner explorer 并按刷新按钮。

按下刷新按钮后,您将在任务 运行 下看到所有任务列表。

如果您在输出 window 中发现任何与 "missing module" 相关的错误,如下所示:

然后你必须安装缺少的 npm 插件,为此只需 运行 下面的命令(进入 powershell): npm install 然后按回车键。 此命令将安装所有缺少的插件,参考下图:

然后再次按下任务 运行ner 资源管理器中的刷新按钮,您将在任务 运行ner window 下看到所有 gulp 任务列表。

希望这个解决方案能有所帮助。

您还需要安装所有依赖项 - 我的 VS Task Runner 在新安装时失败且没有任何错误消息 - 我已经在本地安装了 gulp,但我的 gulpfile.js 显示以下必需模块:

var util = require('gulp-util'),
    gulp = require("gulp"),
    concat = require("gulp-concat"),
    cssmin = require("gulp-cssmin"),
    rename = require('gulp-rename'),
    babel = require('gulp-babel'),
    terser = require("gulp-terser")
    //del = require("del"); 
    ;

其中一个不见了,所以我运行

npm install gulp-util
npm install gulp-concat
npm install gulp-cssmin
npm install gulp-rename
npm install gulp-babel
npm install gulp-terser

任务运行器显示了我的任务——其中一个模块没有正确加载。奇怪的行为,因为 gulpfile.js 和任务运行器上周工作正常,唯一的变化是在本地安装一些不相关的节点模块。

在我的例子中,我已经安装了 gulp(在此之前,Task Runner Explorer 在 Gulpfile.js 下说“无法加载”)

但我仍然遇到这样的“未找到任务”

此外,当我要求 Visual Studio 将我的 bundleconfig.json 转换为 gulp 时,Visual Studio 已经告诉我它已经安装了所有必需的节点包。但是尽管如此,gulp 仍然不开心(我的网络应用程序根目录下的 node_modules 目录非常空)。

运行 "npm install gulp" 我又在命令行中注意到了这一点

并认为这可能是写权限问题,因为 package.json 在我的项目中受源代码控制。我检查了 re-ran "npm install gulp" 和类似的相关包,如 gulp-concat 现在我有一个非常完整的 node_modules 目录并且...确实 gulpfile.js工作?嗯,不,但我现在遇到了一个不同的错误,所以我很确定我现在遇到了一个不同的问题:-/

TL;DR;如果您使用的是源代码管理,请确保在开始安装节点包之前检出 package.json。

就我而言,我也有同样的情况。我安装了所有要求,但仍然 gulp 无法在任务运行器资源管理器上工作,找不到任何任务。我通过取消选中 $(VSInstalledExternalTools).

解决了这个问题

工具 > 选项 > 项目和解决方案 > Web 包管理 > 外部 Web 工具