This package has been deprecated

Author message:

Replaced by @vite-plugin-vercel/vike. See https://github.com/magne4000/vite-plugin-vercel#usage-with-vite-plugin-ssr

@magne4000/vite-plugin-vercel-ssr
TypeScript icon, indicating that this package has built-in type declarations

0.2.2 • Public • Published

@magne4000/vite-plugin-vercel-ssr

vite-plugin-ssr integration for vite-plugin-vercel.

Features

Usage

Install this package as a dev dependency and add it to your Vite config like this:

// vite.config.ts
import { defineConfig } from 'vite';
import ssr from 'vite-plugin-ssr/plugin';
import vercel from 'vite-plugin-vercel';
import vercelSsr from '@magne4000/vite-plugin-vercel-ssr';

export default defineConfig(async ({ command, mode }) => {
  return {
    // `vercelSsr` MUST be after `ssr` and `vercel`
    plugins: [ssr(), vercel(), vercelSsr()],
  };
});

ISR/Prerender Functions

Official documentation: https://vercel.com/docs/build-output-api/v3#vercel-primitives/prerender-functions

Take any of your .page file (not .page.server) and add the following export:

// Now this page is a Prerender Function, meaning that it will be cached on Edge network for 15 seconds.
// Check official documentation for further details on how it works.
export const isr = { expiration: 15 };

⚠️ Pages with route function are not compatible with ISR. A warning will be shown if this occurs.

Custom Serverless Function for vite-plugin-ssr

By default, a Serverless Function is created to handle all SSR routes. If for any reason you need to customize it, some tools are available:

import type { VercelRequest, VercelResponse } from '@vercel/node';
import { renderPage } from 'vite-plugin-ssr/server';
import {
  getDefaultEmptyResponseHandler,
  // higly recommended to use at least this one, as it handles some internals
  // that overrides `request.url`
  getDefaultPageContextInit,
  getDefaultResponseHandler,
} from '@magne4000/vite-plugin-vercel-ssr/helpers';

export default async function handler(
  request: VercelRequest,
  response: VercelResponse,
) {
  // pageContextInit.url is not necessarily equal to request.url.
  // It is required for `renderPage` to work properly.
  const pageContextInit = getDefaultPageContextInit(request);
  const pageContext = await renderPage(pageContextInit);
  const { httpResponse } = pageContext;

  if (!httpResponse) {
    return getDefaultEmptyResponseHandler(response);
  }

  return getDefaultResponseHandler(response, httpResponse);
}

Readme

Keywords

none

Package Sidebar

Install

npm i @magne4000/vite-plugin-vercel-ssr

Weekly Downloads

3

Version

0.2.2

License

MIT

Unpacked Size

64.2 kB

Total Files

14

Last publish

Collaborators

  • magne4000