Как мне запустить React в режиме разработки с Flask? - PullRequest
0 голосов
/ 12 декабря 2018

Я использовал реагировать-создать-приложение , чтобы настроить базовое приложение реакции, и я работаю с Flask, настроив рабочий режим и режим разработки (соответственно меняя статические / шаблонные папки по умолчанию):

from datetime import datetime
from flask import Flask, render_template, url_for, request, redirect, abort, Response, send_file, send_from_directory, make_response
import argparse
import json
import logging
import pathlib
import sys
import os
import subprocess
import re
current_dir = os.path.dirname(os.path.realpath(__file__))
# Caminho para o diretório relativo ManagerFileIdentification
manager_dir = os.path.abspath(os.path.join(current_dir, "../"))
sys.path.append(manager_dir)

from InputDataController.libs.db_connection.dynamo.customer import Customer, StoneCustomer, CustomerManager
from InputDataController.libs.db_connection.dynamo.merchant import Merchant, StoneMerchant, MerchantManager
from InputDataController.libs.db_connection.dynamo.repository import Repository, RepositoryManager

from werkzeug.exceptions import BadRequest

DEVELOPMENT = {}

PRODUCTION = {
    "host": "0.0.0.0",
    "port": "80"
}

running_mode = PRODUCTION

if __name__ == '__main__':
    cmd_args = argparse.ArgumentParser(
        description="Gerenciador de adquirentes especiais da Concil.")
    cmd_args.add_argument(
        "--prod", help="Executa em modo de produção.", action="store_true")
    parsed_args = cmd_args.parse_args()
    appdata = ""
    if parsed_args.prod:
        appdata = "/home/ec2-user"
        app = Flask(__name__, template_folder = os.path.join(current_dir, "build").replace("\\", '/'))
        app.static_folder = os.path.join(current_dir, "build/static").replace("\\", '/')
    else:
        appdata = os.getenv("APPDATA")
        app = Flask(__name__, template_folder = os.path.join(current_dir, "public").replace("\\", '/'))
        app.static_folder = os.path.join(current_dir, "src").replace("\\", '/')

    @app.route('/acquirer-manager')
    def index():
        return render_template("index.html")

    app.config["TEMPLATES_AUTO_RELOAD"] = True
    app.config["appdata"] = appdata
    app.config["parsed_args"] = parsed_args

    if running_mode:
        app.run(running_mode["host"], running_mode["port"])
    else:
        app.run()

Проблема в том, что я вижу только скомпилированный вывод реакции, если я запускаю npm run build (и, следовательно, запускаю флешку в режиме --prod, используя содержимое папки сборки для статических / шаблонов),И это проблема, потому что это неизмеримо скучно - компилировать всего приложения, чтобы увидеть какие-либо изменения на передней панели.И ... Я не хочу использовать NodeJS / serve с NodeJS .Если в режиме разработки я получаю доступ с помощью flkk к папкам src и public, я получаю всевозможные жуткие ошибки, потому что файлы явно «сырые».Итак, как я могу запустить колбу с реакцией без необходимости компилировать каждый раз ?

РЕДАКТИРОВАТЬ: Это смешно (Я не хочу явно использовать Babelтеги в моем скрипте. Является ли реакция ТО зависит от NodeJS?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...