Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Деплой приложения Hapi

Пример Hapi-приложения для деплоя можно найти на Гитхабе.

Сборка приложения

При сборке приложения используется следующая среда:

  • Node.js: 20, 22 или 24
  • npm
  • yarn
  • PM2 (последняя версия)

Сборка приложения всегда выполняется в корне репозитория, поэтому файл 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.

Please add build instruction to your script section in package.json

Проблема связана с тем, что команда сборки yarn build обращается к файлу package.json, и если значение директивы build не указано, возникает ошибка.

Чтобы ее устранить, нужно добавить необходимые директивы в секцию scripts файла package.json. Подробнее об использовании scripts здесь.

Требования к приложению

Убедитесь, что приложение слушает 0.0.0.0, а не 127.0.0.1, иначе внешние подключения работать не будут.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев