我正在使用 Visual Studio 任务运行程序(2015)来运行绑定到构建之前的 Gulp 任务。
我已经将其设置为当 gulp 任务失败时,它会发送退出代码 1,并在最后显示“进程以代码 1 终止”。然而构建仍在继续。
这将取消团队城市中的构建,因此似乎是与 Visual Studio 内的任务运行程序相关的问题。
如果构建以 0 以外的代码退出,如何阻止构建发生?
您是对的,这似乎是任务运行程序问题。如果 BeforeBuild 任务失败,任务运行程序不会与 MSBuild 通信以停止生成。
为了解决这个问题,您可以通过项目的预构建事件而不是通过任务运行程序绑定来运行 Gulp 任务。
设置预构建事件
对于类库,您可以通过右键单击项目并选择“构建事件”来访问“构建事件”Properties -> Compile -> Build Events...
.
对于网络项目,它们位于Properties -> Build Events
.
以下是我用来在预构建事件中调用 Gulp 任务的命令,如果 MSBuild 因失败而退出,它将阻止 MSBuild 运行:
gulp -b $(ProjectDir) --gulpfile $(ProjectDir)gulpfile.js my-task
此命令调用 Gulp 传递工作目录的绝对路径并gulpfile.js
.
Notes:
- 我发现尝试使用更直接的命令时出现各种上下文和工作目录问题,例如
gulp my-task
.
-
$(ProjectDir)
其中一个构建命令的宏 https://msdn.microsoft.com/en-us/library/c02as0cs.aspx.
- 假设Gulp已全局安装:
npm install -g gulp
. See 乔纳斯忍者 https://stackoverflow.com/users/3688464/jonas-ninja's answer https://stackoverflow.com/a/36064728/120783了解如何将此安装构建到命令中(或了解不需要全局依赖项的替代方案)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)