React-snap - pageerror at /: SyntaxError: Unexpected token '?'

87 Views Asked by At

I have been trying to add react-snap to my vite react app but I constantly get this error message.

> react-snap

  pageerror at /: SyntaxError: Unexpected token '?'

✅  crawled 1 out of 1 (/)
ERROR: Invalid namespace

And it seems that the terminal get stuck from loading the remaining error message. No error reference gets displayed whatsoever. I read some stackoverflow questions and answers related to react-snap but nothing really dropped one with is esact issue.

I have gone through my package.json and it looks quite alright in my opinion.

package.json

{
  ...,
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "postbuild": "react-snap",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview",
    "compile:sass": "sass --watch src/styles/scss:src/styles/css"
  },
  "reactSnap": {
    "source": "dist"
  },
  "dependencies": {
    "autoprefixer": "^10.4.17",
    "express": "^4.18.2",
    "nodemon": "^3.1.0",
    "postcss-cli": "^11.0.0",
    "prerender-node": "^3.8.0",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-helmet-async": "^2.0.4",
    "react-router-dom": "^6.22.1"
  },
  "devDependencies": {
    "@types/react": "^18.2.55",
    "@types/react-dom": "^18.2.19",
    "@vitejs/plugin-react": "^4.2.1",
    "dotenv": "^16.4.5",
    "eslint": "^8.56.0",
    "eslint-plugin-react": "^7.33.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.5",
    "react-snap": "^1.23.0",
    "sass": "^1.71.0",
    "vite": "^5.1.0"
  }
}

Then I checked my route

Routes.jsx

import {
  Route,
  createBrowserRouter,
  createRoutesFromElements,
} from "react-router-dom";
import Applayout from "../components/layout/Applayout";
import { About, Buy, Contact, Home, Service } from "../pages";
import Error from "../components/layout/Error";

export const routes = createBrowserRouter(
  createRoutesFromElements(
    <Route element={<Applayout />} path="/" errorElement={<Error />}>
      <Route index path="/" element={<Home />} />
      <Route path="contact" element={<Contact />} />
      <Route path="about" element={<About />} />
      <Route path="service" element={<Service />} />
      <Route path="buy" element={<Buy />} />
    </Route>
  ),
  {
    basename: "/",
  }
);

App.jsx

import { RouterProvider } from "react-router-dom";
import { routes } from "../routes/Routes";
import { HelmetProvider } from "react-helmet-async";

function App() {
  return (
    <>
      <HelmetProvider>
        <RouterProvider router={routes} />
      </HelmetProvider>
    </>
  );
}

export default App;

main.jsx

import { hydrateRoot, createRoot } from "react-dom/client";
import React from "react";
import App from "./App.jsx";
import "../styles/css/root.css";

const rootElement = document.getElementById("root");
if (rootElement?.hasChildNodes()) {
  hydrateRoot(
    rootElement,
    <React.StrictMode>
      <App />
    </React.StrictMode>
  );
} else {
  createRoot(rootElement).render(
    <React.StrictMode>
      <App />
    </React.StrictMode>
  );
}

vercel.json

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

vite.config.js

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
})

I've tried tried commenting out the index route and building the project but it fails and output the same error.

I need help please :(

I'm expecting the project to build successfully and make crawlling the web project easy.

So far I have tried commenting out various routes in the Routes.jsx file to know where the error is from. I do suspect the index directory but it seems to persist after I comment it out.

0

There are 0 best solutions below