astro ssr (on demand) with supabase tries requiring `ws` module and errors

I can't find any examples of setting up supabase with ssr for astro + pages. Getting this error:
(error) 15:18:06 [ERROR] ReferenceError: require is not defined
at chunks/supabase_kyONVxKe.mjs:1572:5
(error) 15:18:06 [ERROR] ReferenceError: require is not defined
at chunks/supabase_kyONVxKe.mjs:1572:5
Where the code in question is:
// Node.js WebSocket entry point
let WebSocketImpl;
if (typeof window === 'undefined') {
// Node.js environment
// eslint-disable-next-line @typescript-eslint/no-var-requires
WebSocketImpl = require('ws');
}
else {
// Browser environment
WebSocketImpl = window.WebSocket;
}
// Node.js WebSocket entry point
let WebSocketImpl;
if (typeof window === 'undefined') {
// Node.js environment
// eslint-disable-next-line @typescript-eslint/no-var-requires
WebSocketImpl = require('ws');
}
else {
// Browser environment
WebSocketImpl = window.WebSocket;
}
My page is at: https://two-made-one.pages.dev Deployment id: fa75ab46-cb23-4ffa-b89a-e049325bb3b4 No idea on account id..
1 Reply
Ilya Radchenko
Ilya RadchenkoOP3mo ago
I tried setting ssr module for vite:
import { defineConfig } from "astro/config";
import solidJs from "@astrojs/solid-js";
import tailwind from "@astrojs/tailwind";

import cloudflare from "@astrojs/cloudflare";

export default defineConfig({
integrations: [solidJs(), tailwind()],
output: "server",
adapter: cloudflare(),
vite: {
ssr: {
external: ["@supabase/ssr"],
},
},
});
import { defineConfig } from "astro/config";
import solidJs from "@astrojs/solid-js";
import tailwind from "@astrojs/tailwind";

import cloudflare from "@astrojs/cloudflare";

export default defineConfig({
integrations: [solidJs(), tailwind()],
output: "server",
adapter: cloudflare(),
vite: {
ssr: {
external: ["@supabase/ssr"],
},
},
});
Was able to convert it to worker deploy, and it works this time. I tried it before and it errored on bindings during build i think. This at least gets me unblocked..

Did you find this page helpful?