Пример Hapi-приложения для деплоя можно найти на Гитхабе.
При сборке приложения используется следующая среда:
Сборка приложения всегда выполняется в корне репозитория, поэтому файл package.json
должен быть размещён именно там. Если он находится в подкаталоге (например, landing
), команду сборки необходимо изменить. Например:
npm run --prefix landing build
Во время сборки будут выполнены следующие команды:
apt install -y nodejs --fix-missing
npm install pm2@latest -g
npm install hapi @hapi/hapi
Если в проекте используется yarn, дополнительно будет выполнено:
apt-get remove -y cmdtest yarn
npm install --global yarn
cd /<DIRECTORY> && yarn install --check-files
В остальных случаях при наличии package.json
:
cd /<DIRECTORY> && npm install
<DIRECTORY>
— путь к каталогу, в котором находится package.json
. В большинстве случаев это корень проекта.
Для запуска используется менеджер процессов PM2. Команда по умолчанию:
pm2 start --no-daemon файл.js
Вместо файл.js
может использоваться один из следующих файлов:
app.js
server.js
main.js
index.js
Убедитесь, что файл действительно существует в корне проекта и приложение может быть запущено с его помощью.
Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так.
Зачастую проблемы связаны с командой запуска. Проверьте, что всё в вашей среде разработки работает с pm2
. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле package.json
.
Проблема связана с тем, что команда сборки yarn build
обращается к файлу package.json
, и если значение директивы build
не указано, возникает ошибка.
Чтобы ее устранить, нужно добавить необходимые директивы в секцию scripts
файла package.json
. Подробнее об использовании scripts
— здесь.