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>
41 lines
1.4 KiB
JavaScript
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;
|