HapiJS + создание-реакция-приложение + настройка webpack-dev-middleware - PullRequest
1 голос
/ 18 июня 2019

В настоящее время я использую create-react-app с HapiJS в качестве прокси для обслуживания статических файлов.

Вот так выглядит моя текущая настройка:

//server.js
const server = new Hapi.Server({
        port: process.env.PORT || 80,
        routes: {
            files: {
                relativeTo: Path.join(__dirname, '../build')
            }
        }
    });
await server.register(Inert);
server.route(routes); // comes from an array of routes defined in react-routes.js
await server.start();
console.log('Server running at:', server.info.uri);
//react-routes.js
//All the routes mapped here should return an index.html file.
//React will take care of routing.
const routes = [
    { method: 'GET', path: '/home', config: fileHandler }
    { method: 'GET', path: '/account', config: fileHandler }
    ]

const fileHandler = {
    handler: (req, res) => {
        return res.file('index.html');
    }
}

Я использую nodemon в разработке для запуска сервера и react-scripts start для запуска приложения реакции. Теперь проблема в том, что сервер HapiJS обслуживает только статические файлы из папки build, созданной с помощью react-scripts build. Я понимаю, что для подключения к сборке веб-пакета мне нужно использовать промежуточное программное обеспечение для HapiJS.

Глядя на документацию веб-пакета , я вижу, что ей нужна ссылка на файл webpack.config.js. Но я не вправе использовать eject для доступа к webpack.config.js по мере необходимости.

Итак, вопросы:

  • Как мне настроить webpack-dev-middleware с HapiJS в сочетании с create-react-app?
  • Как получить доступ к webpack.config.js без извлечения (и желательно без использования каких-либо сторонних модулей)?

ПРИМЕЧАНИЕ. Это не рендеринг на стороне сервера, я использую HapiJS в качестве прокси, поскольку задействованы междоменные вызовы API, и прокси помогает мне избежать печально известной ошибки CORS и также обслуживает приложение.

...