Skip to content
This repository has been archived by the owner on Jun 7, 2023. It is now read-only.
/ site Public archive

Server side rendering for react.js applications

License

Notifications You must be signed in to change notification settings

borderless/site

Repository files navigation

Site

NPM version NPM downloads Build status Build coverage

Server side rendering for react.js applications.

Installation

npm install @borderless/site --save-dev

Features

  • Server-side rendering with getServerSideProps
  • Client-side hydration for interactivity
  • Custom <Head /> rendering with @borderless/site/head
  • Hot reloading and react refresh during development
  • Super fast server with Vite
  • ES Modules supported

Usage

Options:

  • --root Project root directory (default: process.cwd())
  • --src Directory to read source files (default: src)
  • --public-dir Directory to serve as plain static assets (default: public)

Commands:

  • dev Run a local development server with HMR
  • build Generate client and server-side compatible bundles
  • list List the pages in your SSR app

Dev

Run a local development server with hot reload support

Options:

  • --host Specify the host to run on (default: 127.0.0.1)
  • --port Specify the port to run on (default: 8000)

Build

Build client and server-side bundles for deploying to a production environment.

Options:

  • --base Base public path when built in production (default: /)
  • --client-outdir Output directory for client files relative to root (default: dist/client)
  • --server-outdir Output directory for server files relative to root (default: dist/server)
  • --source-map Generate production source maps (default: false)

List

Lists the files used to build the project. The pages are all in root and follow the patterns of _app, _404, _document, or pages/**/index. Acceptable extensions are .ts, .tsx, .js, and .jsx.

Development

Useful scripts are in package.json under scripts. You can build, test, and format the project. Additionally you can run examples locally using ts-node:

npm run build
npm run example:test -- build
npm run example:test -- dev

Test pages:

Inspiration

TypeScript

This project is written using TypeScript and publishes the definitions directly to NPM.

License

MIT