Estoy traduciendo mi aplicación de la configuración del paquete web a vite. Mi servidor de desarrollo webpack actual tiene una endopint personalizada configurada para hacer algunas cosas. También necesito tener este mismo punto final en vite config. ¿Como hacer esto? ¿Cómo puedo definir una ruta express.js para el servidor vite dev?
Este punto final es para cargar variables de entorno desde un servicio durante el tiempo de ejecución. La URL de esta ruta es /__variables.js .
Intenté usar el códigode esta respuesta.
server.middlewares.use('/__variables.js', (req, res, next) => { console.log('hello we"re here') console.log(err, req, res) const variables = Object.keys(process.env).reduce( (prev, key) => { if(key.startsWith('REACT_APP_')) { prev[key] = process.env[key]; } return prev; } , {}); res .status(200) .type('.js') .set('Content-Type', 'application/javascript') .send(`window.__APP_VARIABLES__ = ${JSON.stringify(variables)}`) next(); }); pero esto arroja un error res.status() is not a function . ¿Como arreglarlo?
De acuerdo con la documentación de ViteDevServer , se basa en Connect, no (como parece suponer) Express, lo que significa que no puede usar ninguno de los métodos de acceso directo útiles que Express proporciona en los objetos de solicitud y respuesta.
En cambio, req será una instancia de http.ClientRequest y res una instancia dehttp.ServerResponse .
Su código Express-ish se traducirá a esto:
res .writeHead(200, { 'Content-Type': 'application/javascript' }) .end(`window.__APP_VARIABLES__ = ${JSON.stringify(variables)}`);