Как установить пакеты React и Python на одно приложение DigitalOcean?

У меня есть проект Django с приложением ReactJS (index.html), интегрированным непосредственно в систему шаблонов Django. Это альтернативный способ интеграции Django и React, при котором вы можете использовать общую аутентификацию, а ваше React-приложение будет плавно отображаться в шаблоне (внешний вид и функциональность) Django-сайта.

Одной из проблем, которую вам предстоит решить, является создание среды DigitalOcean таким образом, чтобы она включала все пакеты и зависимости для Python, Django и NodeJS/React. Платформа DigitalOcean не содержит никаких конкретных инструкций по выполнению этой полной настройки. Я тоже пытался найти ответы здесь.

Если вы не используете Docker, DigitalOcean будет иметь доступ к вашему коду и, таким образом, сможет определить, какие языки использует ваш сайт. Если он определит, что вы используете Python, он загрузит билдпаки, специально предназначенные для чтения вашего файла requirements.txt или Pipfile и установки всех пакетов, перечисленных в них.

Если вы добавите ReactJS, как упоминалось выше, ваш проект теперь будет иметь зависимости, которые управляются и устанавливаются вне файла requirements.txt или Pipfile. Таким образом, DigitalOcean не будет знать об этих зависимостях, и они не будут загружены в ваше окружение.

Вы не можете просто добавить зависимости в ваш файл requirements.txt или Pipfile, поскольку они не предназначены для Python. Вместо этого вы должны оставить их в файле package.json, который создается в вашем локальном окружении, когда вы используете NPM для установки пакетов, необходимых для NodeJS и React.

DigitalOcean теперь требует только включения файла packages.json при публикации на DigitalOcean. Если вы развертываете из репозитория Github, вы можете просто добавить файл packages.json и зафиксировать его. Когда ваше репозиторий будет размещен на DigitalOcean с файлом packages.json, DigitalOcean обнаружит дополнительные пакеты для NodeJS и React. Когда он обнаружит их, он свяжет их с билдпаком для NodeJS и установит эти пакеты.

Вернуться на верх