<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

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

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

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

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

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

Сборка приложения всегда выполняется в корне репозитория, поэтому файл package.json должен быть размещён именно там. Если он находится в подкаталоге (например, landing), команду сборки необходимо изменить. Например:

npm run --prefix landing build

Во время сборки будут выполнены следующие команды:

apt install -y nodejs --fix-missing
npm install pm2@latest -g
npm install express

Если в проекте есть файл package.json и используется 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 здесь.

Была ли статья полезна?
Ваша оценка очень важна
Комментарии 1
Alexander Kuzmin
Alexander Kuzmin
02.03.2024, 08:58

Хочется иметь возможность выбрать файл запуска, потому что у меня, к примеру, index.js лежит не в корне репозитория, а в папке ./dist, куда билдится проект.