My-Weekly-ToDo-List/next.config.js
mARTin-B78 0628ec58ba
Some checks are pending
Playwright Tests / test (push) Waiting to run
Test and SonarQube / quality (push) Waiting to run
fix: Build-Speicher auf dem Container -- NODE_OPTIONS statt Rateschluss
Der Deploy starb mit "Ineffective mark-compacts near heap limit". Nodes
Standard-Heap richtet sich nach dem Arbeitsspeicher und liegt auf dem
Container bei rund 1,5 GB -- zu wenig fuer next build. update-app.sh setzt
jetzt --max-old-space-size=2048.

Ich hatte zuerst ESLint im Build verdaechtigt (mein ignoreDuringBuilds:
false aus v1.117.4) und die Aenderung zurueckgenommen. Eine Messung
widerlegte das: Spitzenspeicher mit ESLint 2.590 MB, ohne 2.595 MB -- kein
Unterschied. Die Ruecknahme ist damit hinfaellig, ESLint bleibt im Build.

Der Build braucht rund 2,6 GB. Bei 3 GB Container-RAM bleibt das knapp;
NODE_OPTIONS ist die Sofortmassnahme, mehr RAM fuer LXC 202 die eigentliche
Loesung. Steht als Block J in TODO.md, zusammen mit der Alternative, den
Build auf den Spark zu verlagern.

v1.119.3

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 19:06:41 +02:00

41 lines
1.4 KiB
JavaScript

/** @type {import('next').NextConfig} */
const { version } = require('./package.json');
const nextConfig = {
output: 'standalone',
eslint: {
// Aus: Der Build meldet ESLint-Fehler. Warnungen blockieren ihn nicht, nur Errors.
//
// Kurzzeitig stand hier wieder true, weil ich ESLint fuer den OOM-Absturz des Builds
// auf dem Produktionscontainer verantwortlich hielt. Eine Messung widerlegte das:
// Spitzenspeicher mit ESLint 2.590 MB, ohne 2.595 MB -- kein Unterschied. Die Ursache
// war Nodes Standard-Heap-Limit von rund 1,5 GB; dafuer setzt scripts/update-app.sh
// jetzt NODE_OPTIONS.
ignoreDuringBuilds: false,
},
typescript: {
// Aus: Der Build bricht bei Typfehlern ab. Bis v1.118.1 stand hier true — dadurch
// liefen mehrfach fehlende Importe durch, die zur Laufzeit ReferenceError geworfen
// haetten, waehrend der Build "erfolgreich" meldete.
ignoreBuildErrors: false,
},
optimizeFonts: false,
env: {
NEXT_PUBLIC_APP_VERSION: version,
},
experimental: {
serverComponentsExternalPackages: ['ical.js', 'tsdav'],
},
webpack: (config, { isServer }) => {
// Ignore .md files in node_modules (fixes apple-icloud README.md parse error)
config.module.rules.push({
test: /\.md$/,
include: /node_modules/,
type: 'asset/source',
});
return config;
},
};
module.exports = nextConfig;