fix: Standalone-Output-Wurzel fest verankern -- Smoke-Test scheiterte nach next@15
Some checks are pending
Playwright Tests / test (push) Waiting to run
Test and SonarQube / quality (push) Waiting to run

Der erste Deploy nach dem next@15-Upgrade (v1.123.0) brach am Smoke-Test ab:
Next.js hatte den Standalone-Output um einen Ordner tiefer verschachtelt als
scripts/update-app.sh erwartet, weil es per Lockfile-Suche nach oben eine
verwaiste, leere package-lock.json in /root auf dem Produktionshost fand und
/root faelschlich fuer die Projektwurzel hielt.

outputFileTracingRoot: __dirname in next.config.js verankert die Wurzel jetzt
explizit. Die laufende App war nie betroffen -- der Smoke-Test hat den Build
wie vorgesehen abgefangen, bevor umgeschaltet wurde.

Verifiziert lokal mit denselben Env-Variablen wie scripts/update-app.sh
(NEXT_DIST_DIR=.next-build): .next-build/standalone/server.js liegt jetzt an
der erwarteten Stelle. Typecheck, Lint, 79 Unit-Tests weiterhin gruen.

v1.123.1

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
mARTin-B78 2026-09-12 14:56:37 +02:00
parent 114131f9e4
commit e62294a204
3 changed files with 28 additions and 1 deletions

View File

@ -2,6 +2,23 @@
All notable changes to this project are documented in this file.
## [1.123.1] - 2026-09-12
### Fixed
- **Erster Deploy nach dem next@15-Upgrade schlug am Smoke-Test fehl**, weil
Next.js den Standalone-Output um einen Ordner tiefer verschachtelt hat als
erwartet: `.next-build/standalone/My-Weekly-ToDo-List/server.js` statt
`.next-build/standalone/server.js`. Ursache: Next sucht per Lockfile-Suche
nach oben einen "Workspace-Root" fuer das File-Tracing und fand dabei eine
verwaiste, leere `package-lock.json` in `/root` auf dem Produktionshost --
hielt `/root` faelschlich fuer die Projektwurzel und spiegelte deren
Ordnerstruktur in den Output. `scripts/update-app.sh` erwartet den flachen
Pfad fest. `outputFileTracingRoot: __dirname` in `next.config.js` verankert
die Wurzel jetzt explizit -- unabhaengig davon, was sonst noch im
Dateisystem oberhalb des Projekts liegt.
- Die laufende App war davon nicht betroffen: der Smoke-Test hat den kaputten
Build wie vorgesehen abgefangen, bevor umgeschaltet wurde.
## [1.123.0] - 2026-09-12
### Security

View File

@ -3,6 +3,16 @@ const { version } = require('./package.json');
const nextConfig = {
output: 'standalone',
// Next.js sucht per Lockfile-Suche nach oben selbst einen "Workspace-Root" fuer die
// File-Tracing des Standalone-Outputs. Findet es dort ein weiteres Lockfile (auf dem
// Produktionshost liegt in /root eine verwaiste, leere package-lock.json), haelt es
// /root faelschlich fuer die Wurzel und verschachtelt den Output um einen Ordner tiefer:
// .next-build/standalone/My-Weekly-ToDo-List/server.js statt .next-build/standalone/
// server.js. scripts/update-app.sh erwartet Letzteres fest und der Smoke-Test schlaegt
// sonst fehl ("Cannot find module '.../standalone/server.js'"), live aufgetreten
// 2026-09-12 beim ersten Deploy nach next@15. __dirname verankert die Wurzel explizit,
// unabhaengig davon, was sonst noch im Dateisystem oberhalb des Projekts herumliegt.
outputFileTracingRoot: __dirname,
// Kein "X-Powered-By: Next.js" -- unnoetige Versions-/Framework-Preisgabe an Scanner.
poweredByHeader: false,
// Ziel des Builds. update-app.sh baut nach .next-build, damit das laufende .next

View File

@ -1,6 +1,6 @@
{
"name": "my-weekly-todo-list",
"version": "1.123.0",
"version": "1.123.1",
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
"main": "index.js",
"scripts": {