Upgrade to node 26 - #60
Open
tbunata wants to merge 7 commits into
Open
Conversation
Bump the scaffolded app to Node 26.5.0 and pnpm 11.15.1. pnpm 11 is required because pnpm 10 uses the deprecated `pnpm audit` endpoints, and since Node 26 no longer bundles corepack, install pnpm via the official standalone script (https://pnpm.io/installation) instead of the single-binary download, which pnpm dropped at v11. Add pnpm-workspace.yaml allowing esbuild's build script. pnpm blocks dependency build scripts by default and fails the install otherwise, which would break `pnpm install` in the Dockerfile and the generate:api prebuild (tsx relies on esbuild). Related: #59
Move create-node-app's own package manager to pnpm 11.15.1 (pnpm 10 uses the deprecated `pnpm audit` endpoints) and add Node 26 to the build matrix. The tool's supported Node range (engines >=20.19.0) is left unchanged. Related: #59
With incremental TypeScript, a stale tsconfig.tsbuildinfo copied into the image makes tsc skip emit, leaving dist empty so the container crashes with "Cannot find module '/usr/src/app/dist/index.js'". dist is already ignored, so its build-info file must be too. Related: #59
The legacy `ENV key value` form for DOCKERIZE_VERSION and TINI_VERSION triggers a LegacyKeyValueFormat warning on modern Docker/BuildKit. Switch to the `key=value` form; the values are unchanged. Related: #59
pnpm 11.15.1 crashes on Node 20 (it needs the node:sqlite builtin, available since Node 22.13), which broke the CI build matrix. Remove 20 from the matrix, raise engines.node to >=22.13.0, and bump @types/node to ^22 to match. Node 20 is EOL anyway. Related: #59
pnpm 11's `pnpm link --global` fails on the CI runner with "global bin directory is not in PATH", breaking the create-projects workflow. Run the built CLI directly with node instead of globally linking it. Related: #59
pnpm 11 blocks its build script and fails the install, which breaks the GraphQL starter's scaffold (@apollo/protobufjs is pulled in by @apollo/server). Add it to allowBuilds. pnpm-workspace.yaml is not merged across starter layers, so all starters' build allowances live in the base allowlist; entries for packages a project doesn't install are ignored. Related: #59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR addresses:
Fixes #59