61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
module.exports = {
|
|
devServer: {
|
|
server: {
|
|
type: 'https',
|
|
// options: {
|
|
// cert: '/path/to/cert.pem',
|
|
// key: '/path/to/key.pem',
|
|
// }
|
|
},
|
|
setupMiddlewares: (middlewares, devServer) => {
|
|
const { createProxyMiddleware } = require('http-proxy-middleware');
|
|
|
|
if (!devServer) {
|
|
throw new Error('webpack-dev-server is not defined');
|
|
}
|
|
|
|
devServer.app.use(
|
|
'/api',
|
|
createProxyMiddleware({
|
|
target: 'https://backstory:8911',
|
|
changeOrigin: true,
|
|
secure: false,
|
|
buffer: false,
|
|
proxyTimeout: 3600000,
|
|
onProxyRes: function (proxyRes, req, res) {
|
|
proxyRes.headers['cache-control'] = 'no-cache';
|
|
|
|
if (
|
|
req.url.includes('/docs') ||
|
|
req.url.includes('/redoc') ||
|
|
req.url.includes('/openapi.json')
|
|
) {
|
|
return; // Let original headers pass through
|
|
}
|
|
// Remove any header that might cause buffering
|
|
proxyRes.headers['transfer-encoding'] = 'chunked';
|
|
delete proxyRes.headers['content-length'];
|
|
|
|
// Set proper streaming headers
|
|
proxyRes.headers['cache-control'] = 'no-cache';
|
|
proxyRes.headers['content-type'] = 'text/event-stream';
|
|
proxyRes.headers['connection'] = 'keep-alive';
|
|
},
|
|
})
|
|
);
|
|
|
|
return middlewares;
|
|
}
|
|
},
|
|
webpack: {
|
|
configure: (webpackConfig) => {
|
|
webpackConfig.devtool = 'source-map';
|
|
// Add .ts and .tsx to resolve.extensions
|
|
webpackConfig.resolve.extensions = [...webpackConfig.resolve.extensions, '.ts', '.tsx'];
|
|
// Ignore source map warnings for node_modules
|
|
webpackConfig.ignoreWarnings = [/Failed to parse source map/];
|
|
return webpackConfig;
|
|
},
|
|
},
|
|
};
|