我正在使用 Visual Studio 任务运行器 (2015) 运行绑定(bind)到构建之前的 Gulp 任务。
我已对其进行了设置,以便当 gulp 任务失败时,它会发送退出代码 1,并在最后显示“进程以代码 1 终止”。但是构建仍在继续。
这将取消团队城市中的构建,因此似乎与 Visual Studio 中的 Task Runner 相关联的问题。
如果以 0 以外的代码退出,如何防止构建发生?
最佳答案
我在上面实现了 davidmdem 的解决方案,它很棒......在我的系统上。我有 gulp
全局安装,但我的一位同事没有,所以预构建事件会失败。从 Task Runner Explorer 运行 gulp 使用 项目级 gulp 安装,但从预构建脚本运行 gulp 使用 全局 gulp 安装。
为了防止新开发人员没有安装 gulp 的情况,我将 davidmdem 的预构建脚本扩展为以下内容:
(gulp --version || npm install -g gulp@3.9.0) & gulp -b $(ProjectDir) --gulpfile $(ProjectDir)gulpfile.js my-task
此命令仅在尚未安装时安装 gulp(版本 3.9.0 以匹配项目级 gulp 安装)。现在 gulp 不是您在构建项目之前必须考虑的事情!
(更新:)
解决此问题的另一种方法(在我看来:更好)是使用 npm
作为中介。从上面的例子继续修改,我有一个 gulp 任务 my-task
这是从命令行调用的。这删除了全局 gulp 依赖项,如果 gulp 失败,仍然可以正确停止 msbuild。
预构建事件:
npm run build
包.json:
"scripts": {
"build": "gulp min"
}
关于visual-studio - 如果 Task Runner Explorer 任务失败,则取消构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759446/