使用Bower依赖项将网站部署到Azure

9
我有一个ASPNET mvc项目,使用Nuget和Bower来管理依赖关系。现在我需要在部署时触发bower以安装组件,或者通过在.gitignore中允许它们作为备选方案包含这些包。当然,我希望不要将它们包含在存储库中,而是在部署时安装它们,就像使用Nuget包一样。我试图按照这个指南http://gregtrowbridge.com/deploying-a-bower-dependent-node-app-on-windows-azure/的步骤进行操作,但仍然似乎没有反应。所以任何帮助都将受到欢迎 :)
最好的问候

你是否使用Git来部署你的网站? - ahmelsayed
从Bitbucket进行简单的git部署 - Rasmus Christensen
3个回答

15

所有Azure网站工作程序都预装了Bower并应位于您的路径中。

你所需要做的就是添加一个自定义部署脚本,执行bower install命令。 这里有一个使用Bower的ASP.NET MVC网站示例库

确保bower.json文件存在,并在您的csproj文件中进行引用(参见此处)。

    <Content Include="bower.json" />

然后下载您的自定义部署脚本。如果您访问 https://<yourSiteName>.scm.azurewebsites.net,然后点击Tools -> Download custom deployment script或者从D:\home\deployment\tools下载它,然后将其检入您的存储库根目录中,基本上会有两个文件deploy.cmd.deployment

这是部署逻辑,在其中添加一步以恢复bower 就像这里在那里的最后一步之后

:: 4. Bower Install
if EXIST "%DEPLOYMENT_TARGET%\bower.json" (
    pushd "%DEPLOYMENT_TARGET%"
    call :ExecuteCmd bower install
    IF !ERRORLEVEL! NEQ 0 goto error
    popd
)

需要再次验证,因为我已经尝试过了。也许我忘记在.gitignore中排除一些bower包。 - Rasmus Christensen
尝试部署我提供的仓库链接,查看是否可以恢复正确的 Bower 组件到正确的位置。如果您导航至 https://<siteName>.scm.azurewebsites.net/DebugConsole,则可以轻松地浏览您网站的内容,然后查看您的仓库中有何不同,以及为什么还原未发生。 - ahmelsayed
1
谢谢您的评论。我在一个外部库中发现了一个错误,在阅读一些日志并进行版本控制调查后,问题已经解决。感谢您的提示。 - Rasmus Christensen
1
这对我有用,但是我需要更新脚本中“IF EXISTS”部分的内容,以便找到bower.json文件。我的解决方案中有多个项目,所以最终得到了类似于以下的东西:if EXIST“%DEPLOYMENT_SOURCE%\PROJECT_FOLDER\bower.json”( pushd“%DEPLOYMENT_SOURCE%\PROJECT_FOLDER” call:ExecuteCmd bower install IF!ERRORLEVEL!NEQ 0 goto error popd - PeteK68

1
你可以使用Azure Web应用程序的控制台功能来执行命令。即使控制台只能访问受限功能,你仍然可以使用以下命令安装Bower组件:
bower install

控制台选项列在Web应用程序的部署部分下。您可以参考下面的屏幕截图。

Screen 1

前提条件:

  1. 不要将 bowerComponents 文件夹发布到 Web 应用程序中。
  2. 包括所有依赖项的 bower.json 文件。

希望这有所帮助。


0
以上内容的一个重要补充是,您必须将未更改的 .deployment 文件和修改后的 .cmd 文件一起推送到部署根目录,以便 Azure 可以随后复制/执行您的 .cmd 修改。否则,它将重新生成默认的 .cmd 文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接