В настоящее время я использую 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 и также обслуживает приложение.