diff --git a/examples/express-react-vercel/api/index.js b/examples/express-react-vercel/api/index.js index 59628be..891492a 100644 --- a/examples/express-react-vercel/api/index.js +++ b/examples/express-react-vercel/api/index.js @@ -1,12 +1,5 @@ -import express from 'express' -import vike from 'vike-node/connect' +import { connectToWeb } from 'vike-node' +import app from '../server/index.js' -export default startServer() - -function startServer() { - const app = express() - app.use(vike({ static: false })) - const port = process.env.PORT || 3000 - app.listen(port, () => console.log(`Server running at http://localhost:${port}`)) - return app -} +// Web request handlers support streaming by default on Vercel +export const GET = connectToWeb(app) diff --git a/examples/express-react-vercel/readme.md b/examples/express-react-vercel/readme.md index 0c03b26..757b2ba 100644 --- a/examples/express-react-vercel/readme.md +++ b/examples/express-react-vercel/readme.md @@ -7,4 +7,8 @@ npm install npm run dev ``` -https://vercel.com/new/clone?repository-url=https://github.com/vikejs/vike-node/tree/vercel/examples/express-react-vercel&project-name=express-react&repository-name=express-react \ No newline at end of file +## One-Click Deploy + +Deploy the example using [Vercel](https://vercel.com): + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vikejs/vike-node/tree/vercel/examples/express-react-vercel&project-name=express-react&repository-name=express-react) diff --git a/examples/express-react-vercel/server/index.js b/examples/express-react-vercel/server/index.js index de7b6bc..6617a18 100644 --- a/examples/express-react-vercel/server/index.js +++ b/examples/express-react-vercel/server/index.js @@ -1,11 +1,12 @@ import express from 'express' import vike from 'vike-node/connect' -startServer() +export default startServer() function startServer() { const app = express() app.use(vike()) const port = process.env.PORT || 3000 app.listen(port, () => console.log(`Server running at http://localhost:${port}`)) + return app } diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 367919b..682b8b9 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -2,13 +2,16 @@ "name": "vike-node", "version": "0.1.6", "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./connect": "./dist/connect.js", "./fastify": "./dist/fastify.js", "./h3": "./dist/h3.js", "./hono": "./dist/hono.js", "./elysia": "./dist/elysia.js", - "./plugin": "./dist/plugin/index.js" + "./plugin": "./dist/plugin/index.js", + ".": "./dist/index.js" }, "scripts": { "dev": "tsc --watch", @@ -58,6 +61,9 @@ ], "plugin": [ "./dist/plugin/index.d.ts" + ], + ".": [ + "./dist/index.d.ts" ] } }, diff --git a/packages/vike-node/src/index.ts b/packages/vike-node/src/index.ts new file mode 100644 index 0000000..6959378 --- /dev/null +++ b/packages/vike-node/src/index.ts @@ -0,0 +1,2 @@ +export { connectToWeb } from './runtime/adapters/connectToWeb.js' +export { createServerResponse } from './runtime/adapters/createServerResponse.js' diff --git a/packages/vike-node/src/runtime/handler.ts b/packages/vike-node/src/runtime/handler.ts index ed4c3cf..aa4c2ca 100644 --- a/packages/vike-node/src/runtime/handler.ts +++ b/packages/vike-node/src/runtime/handler.ts @@ -119,6 +119,10 @@ function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise } function resolveStaticConfig(static_: VikeOptions['static']): false | { root: string; cache: boolean } { + // Disable static file serving for Vercel + // Vercel will serve static files on its own + // See vercel.json > outputDirectory + if (process.env.VERCEL) return false if (static_ === false) return false if (static_ === true || static_ === undefined) { return { root: defaultStaticDir, cache: true }