4.0.1 • Published 8 months ago

@mcansh/remix-fastify v4.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Remix Fastify

Use Remix with Fastify

Quick Start

These are the currently available templates that you can get jump started with:

  • Using the Remix Vite plugin (recommended)

    npx create-remix@latest --template mcansh/remix-fastify/examples/vite
  • The basic example using the old Remix compiler

    npx create-remix@latest --template mcansh/remix-fastify/examples/basic

Add to existing remix vite app

Install dependencies

pnpm add @mcansh/remix-fastify fastify source-map-support get-port chalk @fastify/{middie,static}

Install dev dependencies

pnpm add -D @types/source-map-support tsx

in the root of your project create a server directory and add index.ts server/index.ts

import process from "node:process";
import { remixFastify } from "@mcansh/remix-fastify";
import chalk from "chalk";
import { fastify } from "fastify";
import sourceMapSupport from "source-map-support";
import getPort, { portNumbers } from "get-port";

sourceMapSupport.install();

const app = fastify();

await app.register(remixFastify);

const host = process.env.HOST || "127.0.0.1";
const desiredPort = Number(process.env.PORT) || 3000;
const portToUse = await getPort({
  port: portNumbers(desiredPort, desiredPort + 100),
});

let address = await app.listen({ port: portToUse, host });
let { port: usedPort } = new URL(address);

if (usedPort !== String(desiredPort)) {
  console.warn(
    chalk.yellow(
      `⚠️ Port ${desiredPort} is not available, using ${usedPort} instead.`,
    ),
  );
}

console.log(chalk.green(`✅ app ready: ${address}`));

Update the package.json dev, start and build commands

"build": "remix vite:build && tsc --project ./tsconfig.server.json",
"dev": "cross-env NODE_ENV=development tsx --watch-path ./server/index.ts ./server/index.ts",
"start": "cross-env NODE_ENV=production node ./server/index.js",

Add the tsconfig.server.json file to the root of the project

{
  "$schema": "https://json.schemastore.org/tsconfig",
  "extends": "./tsconfig.json",
  "include": ["./server/**/*.ts"],
  "exclude": ["node_modules"],
  "compilerOptions": {
    "noEmit": false,
    "outDir": "./server"
  }
}

run pnpm dev to test that the server starts

4.0.1

8 months ago

3.4.1

9 months ago

4.0.0

9 months ago

3.3.2-pre.0

1 year ago

3.4.0

11 months ago

3.3.3

12 months ago

3.3.2

1 year ago

3.3.1

1 year ago

3.3.0

1 year ago

3.2.2

1 year ago

3.2.1

2 years ago

3.2.0-pre.0

2 years ago

2.8.1

2 years ago

2.8.0

2 years ago

3.2.0

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.9.0-pre.0

2 years ago

3.1.0

2 years ago

3.2.1-pre.0

2 years ago

2.7.4

2 years ago

2.7.3

2 years ago

2.7.0

2 years ago

2.6.1

2 years ago

2.6.0

2 years ago

2.7.2

2 years ago

2.6.3

2 years ago

2.7.1

2 years ago

2.6.2

2 years ago

2.6.4

2 years ago

2.3.0

2 years ago

2.5.0

2 years ago

2.4.1

2 years ago

2.4.0

2 years ago

2.3.1

2 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

1.12.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.11.5

3 years ago

1.11.4

3 years ago

1.11.3

3 years ago

1.11.2

3 years ago

1.11.1

3 years ago

1.11.0

3 years ago

1.10.1

3 years ago

1.10.0

3 years ago

1.9.1

3 years ago

1.9.0

3 years ago

1.8.0

3 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago