仅在发布 ASP.NET 5 个 Web 应用程序时执行 Gulp 个任务
Executing Gulp task(s) only when publishing ASP.NET 5 web application
仅在发布 ASP.NET 5 网络应用程序时执行 Gulp 任务的最佳方式是什么?我是否需要 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
目标?
如有任何建议,我们将不胜感激。
在您的发布配置文件中创建目标(*.pubxml 文件仍然存在于 asp.net 5 个项目中)。 pubxml 文件是一个构建文件,它被添加到您的项目构建文件中。这样,当您使用该特定配置文件发布时,它只会是 运行。
我会使用 BeforeBuild 目标更通用(所有包恢复,所有 js/css 在视图中的注入等我会在构建开始之前完成它们)并在那里添加 gulp 命令:
<Target Name="BeforeBuild">
<Exec Command="call gulp" WorkingDirectory="$(ProjectDir)" />
</Target>
无论您是从 Visual Studio 发布还是从构建机器使用 MSBuild 发布,这都有效。
更新 2
.NET Core CLI 不再支持 "prepack"。 "postcompile" 脚本可能效果更好。
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json#scripts
原答案
将其添加到 project.json
的 "scripts" 部分
project.json: Scripts documentation
{
...
"scripts": {
"prepack": "gulp publish",
}
...
}
仅在发布 ASP.NET 5 网络应用程序时执行 Gulp 任务的最佳方式是什么?我是否需要 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
目标?
如有任何建议,我们将不胜感激。
在您的发布配置文件中创建目标(*.pubxml 文件仍然存在于 asp.net 5 个项目中)。 pubxml 文件是一个构建文件,它被添加到您的项目构建文件中。这样,当您使用该特定配置文件发布时,它只会是 运行。
我会使用 BeforeBuild 目标更通用(所有包恢复,所有 js/css 在视图中的注入等我会在构建开始之前完成它们)并在那里添加 gulp 命令:
<Target Name="BeforeBuild">
<Exec Command="call gulp" WorkingDirectory="$(ProjectDir)" />
</Target>
无论您是从 Visual Studio 发布还是从构建机器使用 MSBuild 发布,这都有效。
更新 2 .NET Core CLI 不再支持 "prepack"。 "postcompile" 脚本可能效果更好。
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json#scripts
原答案
将其添加到 project.json
project.json: Scripts documentation
{
...
"scripts": {
"prepack": "gulp publish",
}
...
}