Развертывание веб-сайта в Azure с зависимостями bower

У меня есть проект ASPNET mvc, использующий Nuget и Bower для зависимостей. Теперь мне нужно либо запустить bower для установки компонентов при развертывании, либо в качестве запасного варианта включить пакеты, разрешив их в моем .gitignore. Конечно, я хотел бы не включать их в репо, а просто устанавливать их во время развертывания, как и в случае с пакетами nuget. Я пытался следовать этому руководству http://gregtrowbridge.com/deploying-a-bower-dependent-node-app-on-windows-azure/, но по-прежнему ничего не происходит. Так что любая помощь приветствуется :)

С наилучшими пожеланиями


person Rasmus Christensen    schedule 17.02.2015    source источник
comment
вы используете git для развертывания своего сайта?   -  person ahmelsayed    schedule 18.02.2015
comment
Да, простое развертывание git из битбакета   -  person Rasmus Christensen    schedule 18.02.2015


Ответы (3)


У всех сотрудников веб-сайтов Azure предустановлена ​​беседка, и они должны быть у вас на пути.

Все, что вам нужно сделать, это добавить собственный сценарий развертывания, который будет bower install Вот пример репозитория для сайта ASP.NET MVC, который использует bower

В основном убедитесь, что bower.json существует и упоминается в вашем csproj

    <Content Include="bower.json" />

Затем загрузите собственный сценарий развертывания. если вы перейдете к https://<yourSiteName>.scm.azurewebsites.net, нажмите Tools -> Download custom deployment script или просто загрузите его с D:\home\deployment\tools, затем проверьте его в корне вашего как здесь в основном будет 2 файла deploy.cmd и .deployment

это логика развертывания, добавьте шаг для восстановления беседки в нем как здесь после последнего шага там

:: 4. Bower Install
if EXIST "%DEPLOYMENT_TARGET%\bower.json" (
    pushd "%DEPLOYMENT_TARGET%"
    call :ExecuteCmd bower install
    IF !ERRORLEVEL! NEQ 0 goto error
    popd
)
person ahmelsayed    schedule 18.02.2015
comment
Придется проверить это еще раз, поскольку я уже пробовал это. Возможно, я забыл исключить некоторые из пакетов bower в .gitignore - person Rasmus Christensen; 19.02.2015
comment
попробуйте развернуть репо, с которым я связан, и посмотрите, работает ли это для восстановления правильных компонентов беседки в правильных местах. Вы можете легко просматривать содержимое своего сайта, если перейдете к https://<siteName>.scm.azurewebsites.net/DebugConsole, а затем посмотрите, что изменилось в вашем репо, я думаю, и почему восстановление не происходит - person ahmelsayed; 19.02.2015
comment
Спасибо за комментарий. У меня была ошибка во внешней библиотеке, и после некоторого чтения журнала и исследования scm все было сделано. Спасибо за совет - person Rasmus Christensen; 07.03.2015
comment
У меня это сработало, однако мне нужно было обновить 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 - person PeteK68; 20.10.2016

Для запуска команд можно использовать функцию консоли веб-приложения Azure. Даже если у консоли есть доступ к ограниченным функциям, вы все равно можете установить компоненты bower с помощью команды:

bower install

Параметр консоли указан в разделе развертывания веб-приложений. Вы можете обратиться к приведенному ниже экрану для справки.

Экран 1

Предпосылки:

  1. Не публикуйте папку bowerComponents в веб-приложении.
  2. Включите файл bower.json со всеми зависимостями.

Надеюсь, это поможет.

person Surabh Shah    schedule 08.05.2017

Одно важное дополнение к вышесказанному - вы должны отправить неизмененный файл .deployment и измененный файл .cmd в корень развертывания, чтобы Azure впоследствии скопировала / выполнила ваши поправки .cmd. В противном случае будет восстановлен файл .cmd по умолчанию.

person Richard Green    schedule 13.09.2015