diff --git a/apps/boilerplate-react-vite/README.md b/apps/boilerplate-react-vite/README.md deleted file mode 100644 index ed8befe7..00000000 --- a/apps/boilerplate-react-vite/README.md +++ /dev/null @@ -1,8 +0,0 @@ -## React Vite Boilerplate - -This project provides a template that can be used to quickly create a React Vite -application using the standard set of shared Canonical packages. - -#### Running the boilerplate - -Run `bun run dev` to run a live development server. diff --git a/apps/boilerplate-react-vite/.gitignore b/apps/react/boilerplate-vite/.gitignore similarity index 100% rename from apps/boilerplate-react-vite/.gitignore rename to apps/react/boilerplate-vite/.gitignore diff --git a/apps/react/boilerplate-vite/README.md b/apps/react/boilerplate-vite/README.md new file mode 100644 index 00000000..77c30019 --- /dev/null +++ b/apps/react/boilerplate-vite/README.md @@ -0,0 +1,35 @@ +## React Vite Boilerplate + +This project provides a template that can be used to quickly create a React Vite +application using the standard set of shared Canonical packages. + +#### Running the boilerplate + +Run `bun run dev` to run a live development server with HMR. + +Run `bun run serve` to run a server-side rendered version of the app using the [React SSR](../../../packages/react/ssr) package. + +##### Build/Serve commands + +Two mechanisms for building/serving the application are supported: +- CLI-based: Invoke `@canonical/react-ssr`'s `serve-express` bin script to create an express server. +- Middleware-based: Call `@canonical/react-ssr`'s `serveStream()` function to create a middleware that can be used with an existing express server. + +In both cases, the client is built the same way (`bun run build:client`). +The server is built differently depending on the approach: +- CLI-based: The server's SSR renderercd module is the entry point. Built with `bun run build:server:cli`, served with `bun run serve:cli`. +- Middleware-based: The server's server script is the entry point. Built with `bun run build:server:middleware`, served with `bun run serve:middleware`. + +The current default behavior is to use the middleware-based approach. +So, `bun run build:server` and `bun run serve` will use the middleware scripts. + +In the future, it is intended that the CLI-based approach will be the default, +and the existing `server.ts` file will be moved to the SSR package as an example. + +##### Bin script issues + +You may run into an issue where `serve-express` is not linked in `node_modules/.bin` after running `bun i`. +This will result in an error when running `bun run serve:cli`. + +To fix this, run `bun i` again. +For more information, see [this documentation](https://github.com/jmuzina/bun-repro/tree/7c9f6eefae2843bc904eabc10db973b56f5e017f/repro/bin-scripts). diff --git a/apps/boilerplate-react-vite/biome.json b/apps/react/boilerplate-vite/biome.json similarity index 100% rename from apps/boilerplate-react-vite/biome.json rename to apps/react/boilerplate-vite/biome.json diff --git a/apps/boilerplate-react-vite/index.html b/apps/react/boilerplate-vite/index.html similarity index 100% rename from apps/boilerplate-react-vite/index.html rename to apps/react/boilerplate-vite/index.html diff --git a/apps/boilerplate-react-vite/package.json b/apps/react/boilerplate-vite/package.json similarity index 68% rename from apps/boilerplate-react-vite/package.json rename to apps/react/boilerplate-vite/package.json index 33f9a51b..609eb4ff 100644 --- a/apps/boilerplate-react-vite/package.json +++ b/apps/react/boilerplate-vite/package.json @@ -1,5 +1,5 @@ { - "name": "@canonical/boilerplate-react-vite", + "name": "@canonical/react-boilerplate-vite", "private": true, "version": "0.7.0-experimental.0", "type": "module", @@ -8,8 +8,12 @@ "dev": "vite", "build": "bun run build:client && bun run build:server", "build:client": "vite build --ssrManifest --outDir dist/client", - "build:server": "vite build --ssr src/ssr/server.ts --outDir dist/server", - "serve": "bun run build && node dist/server/server.js", + "build:server": "bun run build:server:middleware", + "build:server:middleware": "vite build --ssr src/ssr/server.ts --outDir dist/server", + "build:server:cli": "vite build --ssr src/ssr/renderer.tsx --outDir dist/server", + "serve": "bun run serve:middleware", + "serve:middleware": "bun run build:client && bun run build:server:middleware && node dist/server/server.js", + "serve:cli": "bun run build:client && bun run build:server:cli && bun run serve-express dist/server/renderer.js", "check": "bun run check:biome && bun run check:ts", "check:fix": "bun run check:biome:fix && bun run check:ts", "check:biome": "biome check src *.json", diff --git a/apps/boilerplate-react-vite/src/Application.css b/apps/react/boilerplate-vite/src/Application.css similarity index 100% rename from apps/boilerplate-react-vite/src/Application.css rename to apps/react/boilerplate-vite/src/Application.css diff --git a/apps/boilerplate-react-vite/src/Application.tsx b/apps/react/boilerplate-vite/src/Application.tsx similarity index 100% rename from apps/boilerplate-react-vite/src/Application.tsx rename to apps/react/boilerplate-vite/src/Application.tsx diff --git a/apps/boilerplate-react-vite/src/LazyComponent.tsx b/apps/react/boilerplate-vite/src/LazyComponent.tsx similarity index 100% rename from apps/boilerplate-react-vite/src/LazyComponent.tsx rename to apps/react/boilerplate-vite/src/LazyComponent.tsx diff --git a/apps/boilerplate-react-vite/src/assets/canonical.svg b/apps/react/boilerplate-vite/src/assets/canonical.svg similarity index 100% rename from apps/boilerplate-react-vite/src/assets/canonical.svg rename to apps/react/boilerplate-vite/src/assets/canonical.svg diff --git a/apps/boilerplate-react-vite/src/assets/react.svg b/apps/react/boilerplate-vite/src/assets/react.svg similarity index 100% rename from apps/boilerplate-react-vite/src/assets/react.svg rename to apps/react/boilerplate-vite/src/assets/react.svg diff --git a/apps/boilerplate-react-vite/src/index.css b/apps/react/boilerplate-vite/src/index.css similarity index 100% rename from apps/boilerplate-react-vite/src/index.css rename to apps/react/boilerplate-vite/src/index.css diff --git a/apps/boilerplate-react-vite/src/ssr/entry-client.tsx b/apps/react/boilerplate-vite/src/ssr/entry-client.tsx similarity index 100% rename from apps/boilerplate-react-vite/src/ssr/entry-client.tsx rename to apps/react/boilerplate-vite/src/ssr/entry-client.tsx diff --git a/apps/boilerplate-react-vite/src/ssr/entry-server.tsx b/apps/react/boilerplate-vite/src/ssr/entry-server.tsx similarity index 100% rename from apps/boilerplate-react-vite/src/ssr/entry-server.tsx rename to apps/react/boilerplate-vite/src/ssr/entry-server.tsx diff --git a/apps/boilerplate-react-vite/src/ssr/renderer.tsx b/apps/react/boilerplate-vite/src/ssr/renderer.tsx similarity index 100% rename from apps/boilerplate-react-vite/src/ssr/renderer.tsx rename to apps/react/boilerplate-vite/src/ssr/renderer.tsx diff --git a/apps/boilerplate-react-vite/src/ssr/server.ts b/apps/react/boilerplate-vite/src/ssr/server.ts similarity index 100% rename from apps/boilerplate-react-vite/src/ssr/server.ts rename to apps/react/boilerplate-vite/src/ssr/server.ts diff --git a/apps/boilerplate-react-vite/src/vite-env.d.ts b/apps/react/boilerplate-vite/src/vite-env.d.ts similarity index 100% rename from apps/boilerplate-react-vite/src/vite-env.d.ts rename to apps/react/boilerplate-vite/src/vite-env.d.ts diff --git a/apps/boilerplate-react-vite/tsconfig.json b/apps/react/boilerplate-vite/tsconfig.json similarity index 100% rename from apps/boilerplate-react-vite/tsconfig.json rename to apps/react/boilerplate-vite/tsconfig.json diff --git a/apps/boilerplate-react-vite/vite.config.ts b/apps/react/boilerplate-vite/vite.config.ts similarity index 100% rename from apps/boilerplate-react-vite/vite.config.ts rename to apps/react/boilerplate-vite/vite.config.ts diff --git a/bun.lockb b/bun.lockb index 961cfe03..658dc135 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/react/ds-app-launchpad/biome.json b/packages/react/ds-app-launchpad/biome.json index 8a53a170..65f7855f 100644 --- a/packages/react/ds-app-launchpad/biome.json +++ b/packages/react/ds-app-launchpad/biome.json @@ -1,7 +1,4 @@ { "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "extends": ["@canonical/biome-config"], - "files": { - "ignore": ["src/styles/normalize.css"] - } + "extends": ["@canonical/biome-config"] } diff --git a/packages/react/ds-core/biome.json b/packages/react/ds-core/biome.json index 8a53a170..65f7855f 100644 --- a/packages/react/ds-core/biome.json +++ b/packages/react/ds-core/biome.json @@ -1,7 +1,4 @@ { "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "extends": ["@canonical/biome-config"], - "files": { - "ignore": ["src/styles/normalize.css"] - } + "extends": ["@canonical/biome-config"] } diff --git a/packages/react/ssr/README.md b/packages/react/ssr/README.md index 78a50b56..ac2eb5fc 100644 --- a/packages/react/ssr/README.md +++ b/packages/react/ssr/README.md @@ -94,7 +94,7 @@ The example below uses Vite. ### Server Request Handling Once your app is built, you can set up an Express server to handle SSR requests. -See [this file](../../../apps/boilerplate-react-vite/src/ssr/server.ts) as an example. +See [this file](../../../apps/react/boilerplate-vite/src/ssr/server.ts) as an example. ### Injecting the Client Application diff --git a/packages/react/ssr/package.json b/packages/react/ssr/package.json index 4c050bf2..38f58b00 100644 --- a/packages/react/ssr/package.json +++ b/packages/react/ssr/package.json @@ -10,6 +10,9 @@ "email": "webteam@canonical.com", "name": "Canonical Webteam" }, + "bin": { + "serve-express": "./dist/esm/server/serve-express.js" + }, "repository": { "type": "git", "url": "https://github.com/canonical/ds25" diff --git a/packages/typography/biome.json b/packages/typography/biome.json index 8a53a170..65f7855f 100644 --- a/packages/typography/biome.json +++ b/packages/typography/biome.json @@ -1,7 +1,4 @@ { "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "extends": ["@canonical/biome-config"], - "files": { - "ignore": ["src/styles/normalize.css"] - } + "extends": ["@canonical/biome-config"] }