В моем проекте Node.js есть несколько подмодулей git (это то, что сейчас нелегко изменить, поэтому я не могу использовать реестр пакетов, например npm)
Хотя EB автоматически инициализирует и обновит подмодули, мне нужно запустить npm install
в каждом из них, чтобы они работали должным образом.
Как это рекомендуется делать?
Я читал что-то о том, чтобы просто добавить prestart
сценарий в моем package.json
, лайк:
"prestart" : "git submodule foreach npm install"
Но это неправильно.
У меня уже есть скрипты в .ebextensions
, но я не уверен, в каком месте мне следует поместить такой скрипт.
Я нашел ответ с помощью сотрудников службы поддержки AWS.
Я добавил файл с именем 00custom_npm.config
в моем .ebextensions
со следующим:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/51_submodules_install_dependencies.sh":
mode: "000755"
owner: root
group: root
content: |
#! /bin/bash
EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)
cd $EB_APP_STAGING_DIR/<submodule-name> && /opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/npm install
Мне нужно сделать это вручную для каждого из модулей. В моем случае, поскольку он всего один, это просто.