diff --git a/docs/development/non-container.md b/docs/development/non-container.md index b531cc0..ef9ca38 100644 --- a/docs/development/non-container.md +++ b/docs/development/non-container.md @@ -27,9 +27,11 @@ accidental dependency graph: no `packages/*` package may import a concrete ## Prerequisites - **Git** — to clone the repository. -- **Node.js 24.x** — the CI pipeline runs Node 24 and this is the supported - line for the workspace (a hard `engines` restriction is tracked separately as - E00-S01-T08). Any Node ≥ 22 is enough for the current bootstrap commands. +- **Node.js 24.x** — required. The root `package.json` restricts the Node + engine to 24.x (`engines.node`), and the committed `pnpm-workspace.yaml` sets + `engineStrict: true`, so `pnpm install` on any other Node version is + **rejected** (`ERR_PNPM_UNSUPPORTED_ENGINE`) instead of merely warned. + Install Node 24.x via `nvm`, `fnm` or another version manager to match CI. - **pnpm 11.23.0** — pinned via the `packageManager` field in the root `package.json`. The easiest way to get exactly this version is Corepack, which ships with Node.js (`corepack enable`). @@ -128,7 +130,7 @@ pnpm --filter @personal-blog/server start # loads compiled server entrypoint, | --- | --- | | `pnpm: command not found` | Corepack shims not activated — run `corepack enable`, or prefix commands with `corepack pnpm ...`. | | `ERR_PNPM_OUTDATED_LOCKFILE` | `pnpm-lock.yaml` is out of date with the manifests. Run `pnpm install` (unfrozen) and commit the lockfile update. | -| Node version warnings / unexpected behavior | Use Node 24.x to match CI (e.g. via `nvm`, `fnm` or another version manager). A hard `engines` restriction is tracked as E00-S01-T08. | +| `ERR_PNPM_UNSUPPORTED_ENGINE` on install | Your Node version is outside the supported 24.x engine line (`engines.node` in the root `package.json`, enforced by `engineStrict: true` in `pnpm-workspace.yaml`). Install Node 24.x (e.g. via `nvm`, `fnm` or another version manager). | | `start` exits immediately with no output | Expected at bootstrap — the server entrypoint is a placeholder module; the Fastify 5 shell is a later story (see [Run](#run)). | | `.env` files | `.env`/`.env.*` are git-ignored; a committed `.env.example` template lands with the environment story (E00-S04). |