избежать перестройки node_modules в эластичном beanstalk

У нас есть довольно простое приложение node.js, но из-за механизма развертывания AWS Elastic Beanstalk развертывание новой версии занимает около 5 минут (черезgit aws.push) даже после фиксации одного файла.

То есть Сам фиксация (и выгрузка) выполняется быстро (нужно нажать только 1 файл), но затем Elastic Beanstalk получает весь пакет из S3, распаковывает его и запускаетnpm install, который вызывает node-gyp для компиляции некоторых модулей. После установки / завершения строительства, Elastic Beanstalk вытирает/var/app/current и заменяет его новой версией приложения.

Само собой разумеется, постоянная перестройка node_modules не является необходимой, а перестройка, которая занимает 30 секунд на моем старом Macbook Air, занимает> 5 минут на экземпляре ec2.micro, не весело.

Я вижу два подхода здесь:

щипать/opt/containerfiles/ebnode.py и поиграйте с расположением node_modules, чтобы избежать его удаления и восстановления после развертывания.настроить git-репо на экземпляре Elastic Beanstalk EC2 и, в основном, переписать процедуру развертывания самостоятельно, поэтому / var / app / current получает сообщения и запускаетnpm install только при необходимости (что делает Elastic Beanstalk похожим на OpsWorks ..)

Оба варианта лишены изящества и подвержены проблемам, когда Amazon обновляет свои ловушки и архитектуру Elastic Beanstalk.

Может быть, у кого-то есть лучшая идея, как избежать постоянной перестройки node_modules, которые уже присутствуют в директории приложения? Спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос