仅在发布 ASP.NET 5 Web 应用程序时执行 Gulp 任务
Posted
技术标签:
【中文标题】仅在发布 ASP.NET 5 Web 应用程序时执行 Gulp 任务【英文标题】:Executing Gulp task(s) only when publishing ASP.NET 5 web application 【发布时间】:2015-08-07 17:34:17 【问题描述】:的最佳方式是什么?我需要add a custom build event 来执行 Gulp 命令吗?
cmd.exe /c gulp -b "C:\Projects\ProjectName\Source\ProjectName.Web" --gulpfile "C:\Projects\ProjectName\Source\ProjectName.Web\Gulpfile.js" publish
或者,最好是,有没有办法通过 Task Runner Explorer 将 Gulp 任务绑定到 BeforePublish
目标?
任何建议将不胜感激。
【问题讨论】:
【参考方案1】:在您的发布配置文件中创建目标(*.pubxml 文件仍然存在于 asp.net 5 项目中)。 pubxml 文件是一个构建文件,它被添加到您的 proj 构建文件中。这样,它只会在您使用该特定配置文件发布时运行。 我会使用 BeforeBuild 目标更通用(所有包恢复,所有 js/css 在视图中的注入等我会在构建开始之前执行它们)并在那里添加 gulp 命令:
<Target Name="BeforeBuild">
<Exec Command="call gulp" WorkingDirectory="$(ProjectDir)" />
</Target>
无论您是从 Visual Studio 发布还是从您的构建机器使用 MSBuild 发布,这都会起作用。
【讨论】:
【参考方案2】:更新 2 .NET Core CLI 不再支持“预打包”。 “后编译”脚本可能会更好。
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json#scripts
原答案
将其添加到project.json
的“脚本”部分
project.json: Scripts documentation
...
"scripts":
"prepack": "gulp publish",
...
【讨论】:
如果我希望它在发布之前运行,我会挂钩到prepack
操作吗?
其实如果你使用VS工具发布,“prebuild”目标可能会更好。
如果您想在发布之前运行,那么我认为prepublish
是要使用的操作...以上是关于仅在发布 ASP.NET 5 Web 应用程序时执行 Gulp 任务的主要内容,如果未能解决你的问题,请参考以下文章
400 仅在启用 cors 时响应 asp.net web api POST 请求
ASP.NET WebService 仅在使用 Http Get 但 web.config 设置正确时错误地返回 XML 而不是 JSON
ASP.NET MVC Web API 身份验证令牌安全问题
如何使用 ajax 从跨域调用 asp.net Web 服务