0

I am trying to deploy my react application on vercel .But i want to run my build using node server. Because I have to use prerender.io in my node app. Such that preview can come with dynamic value when someone share the link.

For that i am adding server.js in my root folder and this is the code :

const express = require('express');
const prerender = require('prerender-node');

const app = express();

// Serve the static React build files
app.use(express.static('build'));

// Use prerender.io for prerendering
app.use(prerender.set('prerenderToken', 'MY TOKEN'));

// Serve the React app for all routes
app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'build', 'index.html'));
});

// Start the server
const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

and this is my vercel.json :

{
    "rewrites": [
      { "source": "/(.*)", "destination": "/server.js" }
    ]
  }
  

But my build is not getting read through node , vercel is just serving build directly i think.

But when i added api folder in my app and added same server.js code there , afterwards it started running through node app. And i dont want to use '/api' in my url for it to work. So what can i walk around such that my build runs through node app .

These are scripts in my package.json

 "scripts": {
    "start": "node server.js",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },```



0 Answers0