Lumen - обслуживающий проект ReactJS - PullRequest
0 голосов
/ 09 декабря 2018

Я работаю над приложением Lumen / React для проекта.Очевидно, Lumen предоставляет API, а React - пользовательский интерфейс.Теперь я пытаюсь обслуживать свое приложение React через Lumen, чтобы оно могло взять на себя всю работу по пользовательскому интерфейсу.

Я хочу сохранить часть приложения на стороне клиента как можно более ограниченной, чтобы позволить мне легко переключатьсяот Lumen до Koa или любого другого бэкенда, в будущем, если я захочу.Моя структура приложения выглядит примерно так:

enter image description here

Как вы можете видеть, в настоящее время приложение React является подпапкой репо.Это то, что я делал с предыдущими проектами Koa, однако, из-за особенностей веб-сервисов Nodejs, было намного проще обслуживать эти файлы.

Из моих испытаний пока, я думаю, лучший способчтобы обслуживать файлы, нужно прочитать содержимое index.html из папки клиента, либо / build, либо / public, в зависимости от того, включено ли производство.Затем мне нужно будет перенаправить запросы на ресурсы вне общедоступной папки, заданной веб-сервером для / build или / src в папке клиента, опять же, в зависимости от того, находится ли она в работе.

Мои вопросы:

A) Возможно ли это безопасным и надежным способом?

B) Это лучший способ обслуживания приложения React через Lumen?

1 Ответ

0 голосов
/ 09 декабря 2018

Возможно, это не самое удачное решение, но я просто написал свои собственные сценарии для развертывания собранной версии в файлах Lumen после запуска сценария сборки.

Разработка может быть выполнена с использованием опции прокси React.

const copydir = require('copy-dir');
const fs = require('fs');

copydir.sync('./build', '../public');

fs.readFile('./build/index.html', 'utf8', function (err, data) {
    if (err) throw err;
    fs.writeFile ('../resources/views/index.php', data, function(err) {
        if (err) throw err;
    });
});
...