Чтобы избежать запуска npm install при каждом развертывании, я храню предварительно созданный файл node_modules.zip (~60 МБ) в хранилище BLOB-объектов Azure.
Мой рабочий процесс это:
- Загрузить node_modules.zip
- Извлечь его из Kudu (консоли службы приложений) в /tmp/...
- Скопировать извлеченную папку в /home/site/wwwroot/
/node_modules
Извлечение и копирование этого ZIP-архива занимает больше времени, чем запуск npm install, хотя вся идея заключалась в ускорении развертывания.
Что я пробовал
- Использование node_modules.zip
- Извлечение в /tmp, а затем копирование в каталог проекта
- Пробиваем разные пакеты распаковки (, adm-zip и т. д.)
Код: Выделить всё
unzipper - Использование консоли Kudu и Azure CLI
- Файловая система службы приложений Azure работает медленно и содержит тысячи маленьких файлов
- Zip извлечение node_modules происходит очень медленно
- Копирование папки удваивает задержку
- Конечный результат: установка npm фактически завершается быстрее
Мой вопрос
Как я могу ускорить процесс восстановления node_modules в Службе приложений Azure?
Я хочу избежать запуска npm install каждый раз, но извлечение ZIP-архива node_modules происходит еще медленнее. Как лучше всего быстро восстановить зависимости от Службы приложений Azure?
Дополнительные примечания
Служба приложений основана на Linux - Инструмент развертывания использует Node.js
- Сборки React и Angular работают, эта проблема возникает только с node_modules восстановить
- Я открыт для альтернатив, таких как tar.gz, npm кэш, npm ci и т. д.
- Лучший формат для хранения node_modules (tar.gz?)
- Более быстрый метод извлечения
- Извлечь непосредственно в место назначения без копирования?
- Альтернативные подходы (npm кэш или npm ci)
- Какие-либо рекомендации по восстановлению зависимостей в службах приложений Azure
Подробнее здесь: https://stackoverflow.com/questions/798 ... an-running
Мобильная версия