Wenn ich ein ionic 3-Projekt mit dem Befehl "ionic serve" ausführe, wird der folgende Fehler angezeigt:
Antworten:
Für eine nicht eckige allgemeine Antwort für diejenigen, die auf dieser Frage von Google landen:
Jedes Mal, wenn Sie auf diesen Fehler stoßen, liegt dies wahrscheinlich an einem Speicherverlust oder einem Unterschied zwischen der Verwaltung des Speichers durch Knoten <= 10 und Knoten> 10. Normalerweise kann Ihr Programm nur durch Erhöhen des dem Knoten zugewiesenen Speichers ausgeführt werden, löst jedoch möglicherweise nicht das eigentliche Problem, und der vom Knotenprozess verwendete Speicher kann den von Ihnen zugewiesenen neuen Speicher immer noch überschreiten. Ich würde empfehlen, die Speichernutzung in Ihrem Knotenprozess zu profilieren, wenn er ausgeführt wird oder auf Knoten> 10 aktualisiert wird.
Ich hatte ein Speicherleck. Hier ist ein großartiger Artikel zum Debuggen von Speicherlecks im Knoten.
Um den Speicher in dem Terminal zu vergrößern, in dem Sie Ihren Knotenprozess ausführen:
export NODE_OPTIONS="--max-old-space-size=8192"
wo Werte von sein max-old-space-size
können: [2048, 4096, 8192, 16384]
etc.
[UPDATE] Weitere Beispiele für weitere Klarheit:
export NODE_OPTIONS="--max-old-space-size=5120" #increase to 5gb
export NODE_OPTIONS="--max-old-space-size=6144" #increase to 6gb
export NODE_OPTIONS="--max-old-space-size=7168" #increase to 7gb
export NODE_OPTIONS="--max-old-space-size=8192" #increase to 8gb
# and so on...
# formula:
export NODE_OPTIONS="--max-old-space-size=(X * 1024)" #increase to Xgb
# Note: it doesn't have to be multiples of 1024.
# max-old-space-size can be any number of memory megabytes(MB) you have available.
next.js
begann unsere App mit der Schnellaktualisierungsfunktion zum Absturz zu bringen.
Beheben Sie in meinem Fall dieses Problem bei der Installation von NodeJs, Version 12.10.0
das gleiche Problem auf Centos Server 7, aber dies löste mein Problem:
node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod
Wo X = (2048 or 4096 or 8192 o..)
ist der Wert des Gedächtnisses?
ng serve
und eine massive .js-Datei, auf die im scripts
Abschnitt verwiesen wird, musste in den angular.json
Speicher geladen werden.
Probieren Sie diese Lösung aus, auf die in einer alten Nachricht im Forum hingewiesen wurde: https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-working/107061/24
Öffnen node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js
Ändern Sie die erste Zeile von:
#!/usr/bin/env node
zu
#!/usr/bin/env node --max-old-space-size=4096
Probieren Sie die Werte 1024 und 2048 aus, aber für eine relativ große App benötigen Sie möglicherweise 4096.
Ich habe den gleichen Fehler erhalten, wenn ich einen ng build
Befehl in Visual Studio-Code ausführe . Ich kann jedoch erfolgreich erstellen, wenn ich dasselbe in der Windows-Befehlszeile in der folgenden Reihenfolge ausführe.
Schritt 1.
set NODE_OPTIONS=--max_old_space_size=4096
Schritt 2.
ng build
Ich habe die gleiche Fehlermeldung erhalten, wenn ich die folgenden Anweisungen im Visual Studio-Code ausführe. Aber ich kann erfolgreich erstellen, wenn ich dasselbe in der Windows-Befehlszeile ausführe.
npm install -g increase-memory-limit
increase-memory-limit
set NODE_OPTIONS=--max_old_space_size=4096
ng build -c deploy --build-optimizer --aot --prod --sourceMap
node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/baseUrl/ --prod=true
Aus einigen Gründen hat die obige Antwort für mich nicht wirklich funktioniert. Ich habe Folgendes getan, um mein Problem zu beheben:
node_modules
Ordner löschennpm install
node --max_old_space_size = 4096 ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer
Durch Hinzufügen von Parametern wurde --build-optimizer
das Problem in meinem Fall behoben.
Aktualisieren:
Ich bin nicht sicher, warum nur das Hinzufügen von --build-optimizer das Problem löst, aber gemäß eckigen Dokumenten sollte es mit aktiviertem aot verwendet werden, daher sollte der aktualisierte Befehl wie folgt aussehen
--build-optimizer=true --aot=true
Führen Sie diesen Befehl in Ihrem Projektordner aus. Verwenden Sie Serve anstelle von Build
node --max_old_space_size=8000 node_modules/@angular/cli/bin/ng serve --prod --port=4202
Ersetzen Sie die Leitung
"start": "ng serve -o --port 4300 --configuration=en"
mit
"start": "node --max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o --port 4300 --configuration=en"
HINWEIS:
Port - 4300 ist nicht konstant. Dies hängt davon ab, welchen Port Sie auswählen.
--max_old_space_size = 5096 zu nicht konstant; ein beliebiger Wert 1024,2048,4096 usw.
In meinem Fall war es eine Rekursion , die dazu führte, dass die Reaktion den gesamten Speicher verbrauchte.
Dies geschah, als ich meinen Code überarbeitete und dies nicht bemerkte.
const SumComponent = () => {
return (
<>
<SumComponent />
</>
)
}
In anderen Knoten-Apps könnte dies folgendermaßen aussehen:
const someFunction = () => {
...
someFunction();
...
}
SumComponent
enthält einen SumComponent
(der einen SumComponent
enthält, der einen SumComponent
... enthält )
Für mich war es ein Problem mit dem Firebase-Paket.
Fügen Sie nur "@ firebase / database" hinzu: "0.2.1", installieren Sie für Ihre package.json node_modules neu und funktionieren.
Ich habe das vorhandene Knotenmodul gelöscht und die folgenden Befehle ausgeführt, um mein Problem zu beheben
npm install -all
npm audit fix
Eine weitere nicht eckige Antwort (ich hatte das gleiche Problem beim Erstellen einer Reaktions-App auf AWS Amplify).
Wie von Emmanuel erwähnt, scheint dies auf den Unterschied in der Art und Weise zurückzuführen zu sein, wie der Speicher von Knoten v10 gegenüber Knoten v12 behandelt wird.
Ich habe erfolglos versucht, das Gedächtnis zu vergrößern. Aber mit Knoten v12 hat es geschafft.
Überprüfen Sie, wie Sie nvm use $VERSION_NODE_12
Ihre Build-Einstellungen wie unter @atlesp erläutert hier hinzufügen können: https://github.com/aws-amplify/amplify-console/issues/440#issuecomment-602626451
Für mich bestand das Problem darin, einen zusätzlichen node_modules
Ordner zu haben, in den ich umbenannt habe, node_modules_old
und einen auszuführen npm install
, um einen neuen zu generieren node_modules
. Irgendwie muss der Build den node_modules_old
Ordner noch aufgenommen haben, also habe ich node_modules_old
das Verzeichnis verlassen, um das Problem zu beheben.
Bitte überprüfen Sie Ihre Knotenversion:
$ node -v
Wenn es sich um 10.1.1 handelt, müssen Sie die Version Ihres Root-Knotens über die folgenden Befehle aktualisieren
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
$ source ~/.nvm/nvm.sh
$ nvm ls
$ nvm install 12.18.1
Sobald dies erledigt ist, starten Sie bitte Ihr Terminal oder Visual Studio neu.
Es ist Arbeit 100 $
Für ionische Benutzer fügen Sie bitte den folgenden Code in Ihre package.json ein
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
app-scripts
erstellen, aber wenn Sie Android oder Skript ionic cordova build android
wie bauen?
Überprüfen Sie Ihren Ordnernamen. Wenn Ihr Ordnername Leerzeichen enthält, werden diese Probleme generiert. Ohne Leerzeichen umbenennen. hoffe es wird funktionieren
Wenn dies beim Ausführen der React-Anwendung auf VSCode passiert, überprüfen Sie bitte Ihre propTypes. Undefinierte Proptypes führen zu demselben Problem.
#! / usr / bin / env-Knoten --max-old-space-size = 4096 in der Funktion ionic-app-scripts.js
Ändern
node_modules / .bin / ionic-app-scripts.cmd
Beim Hinzufügen:
@IF EXIST "% ~ dp0 \ node.exe" ("% ~ dp0 \ node.exe" "% ~ dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js"% *) ELSE ( @SETLOCAL @SET PATHEXT =% PATHEXT:;. JS; =;% node --max_old_space_size = 4096 "% ~ dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js"% *)
Arbeitete fianlly
Manchmal ist Einfachheit der Schlüssel zum Erfolg. Suchen Sie nach, while (i <= 10000) {}
ohne i
Ihren Code zu erhöhen ;)
Dieses Problem wurde behoben, nachdem ich alle Bibliotheken wie NodeJS, Typoskript, Garn, Npm usw. für mein Projekt aktualisiert habe.
Das Aktualisieren von Knoten 12 auf Knoten 14 hat das Problem für mich gelöst