У меня есть API-интерфейс nodejs (с использованием инфраструктуры nestjs), размещенный в службах веб-приложений Azure. Я использовал локальное развертывание git для развертывания приложения. Все работает, но установка NPM и сборка приложения были несовместимы. Поэтому я начал искать альтернативные способы развертывания моего приложения. Я наткнулся на Azure-Devops и попробовал. До сих пор я замечал массу улучшений в процессе развертывания. Развертывание было последовательным, и время, необходимое для развертывания, сократилось как минимум на 50%.
Это мой текущий процесс конвейера:
Сложение:
- Укажите версию узла
- Укажите версию npm
- Установка NPM
- сборка NPM
- Архивные файлы
- Опубликовать артефакт
Release
- Развертывание службы приложения Azure
У меня уже работает, но я не уверен, что лучше всего устанавливать модули node_modules в веб-приложение.
В настоящее время я устанавливаю пакеты NPM с помощью диалогового окна консоли на интерфейсе портала Azure. Это не очень согласованно, и иногда возникают проблемы с тайм-аутом.
Если я использую Azure-Devops, как мне выполнить установку пакетов NPM для моего веб-приложения?
Должен ли я включать пакеты NPM в файл архива до публикации артефакта?
Должен ли я добавить действие после развертывания для выполнения npm install
?
Другие варианты?
Обновление
Я продолжил тестирование, включая node_modules с архивом, а также попытался выполнить действие после развертывания из задачи выпуска.
Включение узловых модулей в архив
Время архивирования собранных файлов заняло больше времени. Релиз был относительно быстрым. Размер файла архива вырос с 14 КБ до 35 МБ. Я думаю, что в целом это примерно на 20% больше за время, необходимое для сборки и выпуска.
Действие после развертывания
После развертывания npm install
потребовались дополнительные 3 минуты для установки пакетов. Это кажется более правильным способом установки пакетов. Я просто не уверен в согласованности npm install
в веб-приложении Azure.