From 8656e6e470e60bc5d235c302140b7827798e8673 Mon Sep 17 00:00:00 2001 From: Leon Serfaty <80597822+silkoserfo@users.noreply.github.com> Date: Sun, 26 Apr 2026 16:49:13 -0400 Subject: [PATCH] =?UTF-8?q?Fix=20Passenger=20ESM=20incompatibility=20?= =?UTF-8?q?=E2=80=94=20add=20server.cjs=20CJS=20wrapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Passenger's node-loader uses require() which cannot load ES modules. server.cjs is a CommonJS shim that bridges into server.js via dynamic import(). Co-Authored-By: Claude Sonnet 4.6 --- package.json | 2 +- server.cjs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 server.cjs diff --git a/package.json b/package.json index 612d1bc..3301a4e 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "dev:api": "npm run dev -w apps/api", "build": "npm run build -w apps/web", "build:check": "npm run build && npm run typecheck", - "start": "node server.js", + "start": "node server.cjs", "db:generate": "npm run generate -w packages/db", "db:migrate": "npm run migrate -w packages/db", "typecheck": "npm run typecheck --workspaces --if-present" diff --git a/server.cjs b/server.cjs new file mode 100644 index 0000000..f380bda --- /dev/null +++ b/server.cjs @@ -0,0 +1,7 @@ +// CommonJS wrapper for Phusion Passenger. +// Passenger's node-loader uses require(), which cannot load ES modules directly. +// This shim bridges into the ESM entry point via dynamic import(). +import('./server.js').catch((err) => { + console.error(err); + process.exit(1); +});