有没有办法将gulp任务绑定到Visual Studio 2017构建按钮?

5
我在 Visual Studio 2017 中有一个 TypeScript 项目,其中包含一个名为 gulpfile.js 的文件。我想在单击“运行”、“构建”或“清理”按钮时运行我的任务。是否有任何方法可以实现这一点?
我知道可以通过在构建前或构建后设置任务来达到此目的,但我想替换它,并添加一个与“运行”按钮相关的任务。
图片链接: Tasks Build Run

@Barryman9000,我可以在那之后停止Visual Studio的构建吗? 我不想让Visual Studio定期构建。 对我的糟糕英语感到抱歉。 - M6stafa
你可以在任务运行后停止构建。不过,你是在寻找 gulp watch 吗?它能够在每次保存时继续构建你的JS和CSS。 - Duderino9000
你所说的“默认构建”是指解决方案,还是指你的 gulp 构建?因为两者都应该在运行后停止。如果你的 gulp 没有停止,可能是因为你正在运行 gulp-watch 命令,或者你的 gulp 文件存在问题。 - Duderino9000
@Barryman9000 我的意思是解决方案构建。我希望我的 gulp 任务运行,并在任务完成后完成解决方案构建。 因此,当我点击构建时,我的任务运行,不会发生其他任何事情。 - M6stafa
实际上,解决方案构建运行和 gulp 任务运行的时间并不重要。如果您只想运行 gulp 任务,可以从命令窗口调用它,而不是从任务运行器资源管理器中调用。但是,如果您在 VS 中单击“生成”,它不会_仅仅_运行 gulp 任务。单击“生成”将构建解决方案,并且您还可以让任务运行器资源管理器运行 gulp 任务。 - Duderino9000
显示剩余2条评论
1个回答

7
稍晚回答这个问题,但这里是结合原问题的评论和我的经验总结的答案摘要。
Visual Studio确实包含任务运行器,但它不识别在gulpfile.js中定义的内置任务。
为了获得与Visual Studio的真正集成,我们需要在gulpfile.js中添加注释提供额外的标记,以便填充任务运行器。
我们需要的一行代码如下:
/// <binding BeforeBuild='js,css' AfterBuild='move' Clean='cleanup' ProjectOpened='default' />

在添加文件后,您的gulpgile.js应该像这样:

/// <binding BeforeBuild='js,css' AfterBuild='move' Clean='cleanup' ProjectOpened='default' />

// Include gulp
var gulp = require('gulp');

如果您添加了另一行具有附加定义的内容,它将不会被识别,只有顶部的内容将被使用。
如果您是一个视觉化的人,您可能想要使用Visual Studio。在此处提供了设置指南。

http://www.codedigest.com/quick-start/14/using-of-gulp-gulpfilejs-in-visual-studio-2017

根据评论更新:如何运行这个任务运行器

How to open the task runner window

当你点击所需任务时,它将执行。

如果您已添加上述绑定,则它将自动绑定到您的绑定操作。

例如:

要触发编译,只需构建解决方案。


绑定事件的完整列表是什么? - M6stafa
@M6stafa 在 Visual Studio 中,所有这些事件(BeforeBuild、AfterBuild、Clean、ProjectOpened)都列在我的示例中,但在 Gulp 中,您可以拥有任意数量的事件。 - cpoDesign
我也可以通过任务运行器图形界面添加它们。 实际上,我的问题还没有解决方案。 - M6stafa
@M6stafayou 可以添加任意数量的任务,但我认为顺序很重要。只需用逗号分隔它们即可。 - cpoDesign
那我可以为“运行”按钮做些什么? - M6stafa
@M6stafa,我更新了我的答案,添加了信息,希望能帮到你。 - cpoDesign

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接