如何在弹性豆茎上使用Django提供Reaction应用程序? [英] How to Serve a React App with Django on Elastic Beanstalk?

查看:18
本文介绍了如何在弹性豆茎上使用Django提供Reaction应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我过去在Heroku上有我的应用程序,它在那里的工作方式是我有2个构建包。一个用于NodeJS,一个用于Python。Heroku运行npm run build,然后Django提供build文件夹中的文件。

每当我的GitHub存储库有新的推送时,我都会使用AWS上的代码管道来部署我的应用程序的新版本。

因为我不知道如何在EB的python环境中运行npm run build,所以我有一个变通办法。我运行npm run build并将其推送到我的存储库(从.gitignore中删除了build文件夹),然后Django在EB上提供文件。

然而,这不是最好的解决方案,我想知道是否有人知道如何运行npm run build,就像Heroku在EB上为Python应用程序运行NodeJS构建包一样。

推荐答案

所以我想出了一个适合我的解决方案。

由于我希望以Heroku使用NodeJS构建包的方式在服务器上创建应用程序的构建版本,因此我必须创建一个命令来安装节点,如下所示:

container_commands:
  01_install_node:
    command: "curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install nodejs"
    ignoreErrors: false

然后要在Python Environment EB上创建Reaction应用程序的构建版本,我添加了以下命令:

container_commands:
  02_react:
    command: "npm install && npm run build"
    ignoreErrors: false

当然,在创建内部版本之后,您应该收集静电文件,下面是我的工作配置文件在结尾的样子:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: <project_name>/wsgi.py

  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: <project_name>.settings

  aws:elasticbeanstalk:container:python:staticfiles:
    /static/: staticfiles/

container_commands:
  01_install_node:
    command: "curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install nodejs"
    ignoreErrors: false

  02_react:
    command: "npm install && npm run build"
    ignoreErrors: false

  03_collectstatic:
    command: "django-admin.py collectstatic --noinput"

希望这能帮助任何遇到相同🙂的人

这篇关于如何在弹性豆茎上使用Django提供Reaction应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆