在使用git部署到Azure时,如何在我的asp.net核心项目中运行gulp.js?

时间:2016-09-13 23:10:19

标签: git azure deployment gulp asp.net-core

所以我运行了新的ASP.Net核心Web应用程序,并按照this quick start中列出的步骤进行操作。项目中的gulp.js文件将所有需要的脚本部署到wwwroot / lib文件夹,并将所有typescript脚本编译到wwwroot / appScripts。

由于生成了这些文件,我在git中忽略它们。

问题是,当解决方案部署到Azure(使用git)时,gulp.js文件不会执行,因此永远不会创建这些文件。

部署到Azure时执行gulp.js文件的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

昨天我能够正常工作,这就是我做到的。

1)登录您的kudu站点(不知道还有什么可以称之为此)。该网址为https://[your网站] .scm.azurewebsites.net /

在该网站上转到工具 - >下载部署脚本

从zip(.deployment和deploy.cmd)中提取两个文件,并将它们放在git存储库的根目录中。

2)接下来我们需要下载所有npm资源。您可以尝试通过部署脚本执行此操作,但我在此步骤遇到了各种问题,因此我建议使用kudu控制台。

在kudu站点上转到Debug Console - > CMD(或Bash,如果这是你的事情)。

将目录更改为D:\ home \ site \ repository,它是git存储库的根目录,然后更改为包含package.json文件的文件夹。在我的例子中,它是Web项目,因此它将是D:\ home \ site \ repository \ MyWebProject

在命令提示符下运行“npm install”。

这是我遇到an issue installing gulp的地方,这阻止了我的所有包下载。所以我不得不将npm升级到版本3来修复问题。到那个运行“npm install npm @ 3 -g”。安装完成后,我可以成功运行“npm install”。

此时,如果您想在控制台中确保它们正常工作,您还可以测试您的gulp任务。要做到这一点,只需在你应该已经存在的文件夹中运行“node_modules.bin \ gulp [task name]”,其中也应该包含你的gulp.js文件。

3)完成所有工作后,您可以修改deploy.cmd脚本以使每次运行这些步骤。 npm安装不会花费很长时间,因为它应该只处理更改。

我在第1步之后添加了以下部分 - 恢复nuget包。

:: 2. Install npm packages and run gulp
pushd "%DEPLOYMENT_SOURCE%\[Your website folder]"
call :ExecuteCmd npm install
IF !ERRORLEVEL! NEQ 0 goto error
call :ExecuteCmd node_modules\.bin\gulp [your guld task name]
IF !ERRORLEVEL! NEQ 0 goto error
popd

就是这样,现在当完成git check in时,更新了npm模块并运行了gulp任务。希望这有助于其他任何人试图设置它。