Bu hatayı almak yerine "iyonik servis" komutunu kullanarak ionic 3 projesini çalıştırdığımda:
Yanıtlar:
Google'dan bu soruya inenler için açısal olmayan genel bir cevap için:
Bu hatayla her karşılaştığınızda, bunun nedeni muhtemelen bir bellek sızıntısı veya Düğüm <= 10 ve Düğüm> 10'un belleği yönetme şekli arasındaki farktır. Genellikle sadece Düğüme ayrılan belleği artırmak, programınızın çalışmasına izin verir ancak gerçek sorunu çözmeyebilir ve düğüm işlemi tarafından kullanılan bellek yine de ayırdığınız yeni belleği aşabilir. Çalışmaya başladığında veya düğüm> 10'a güncellenmeye başladığında, düğüm işleminizde bellek kullanımını profillemeyi öneririm.
Hafıza sızıntısı yaşadım. Düğümdeki bellek sızıntılarında hata ayıklama hakkında harika bir makale .
Bununla birlikte, Düğüm sürecinizi çalıştırdığınız terminalde belleği artırmak için:
export NODE_OPTIONS="--max-old-space-size=8192"
değerleri nerede max-old-space-size
olabilir: [2048, 4096, 8192, 16384]
vb
[GÜNCELLEME] Daha fazla netlik için daha fazla örnek:
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
hızlı yenileme özelliği ile bizim app çökmesini başladı.
Benim durumumda, NodeJs 12.10.0 sürümünü yükleyerek bu sorunu düzeltin
centos sunucusu 7'de aynı sorun, ancak bu sorunumu çözdü:
node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod
X = (2048 or 4096 or 8192 o..)
Hafızanın değeri nerede
ng serve
ve bir büyük js başvurulan dosyası scripts
bölümünde angular.json
belleğe yüklenecek gerektiğini.
Forumdaki eski bir mesajda belirtilen bu çözümü deneyin: https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-working/107061/24
Açık node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js
İlk satırı şundan değiştirin:
#!/usr/bin/env node
-e
#!/usr/bin/env node --max-old-space-size=4096
1024 ve 2048 değerlerini deneyin, ancak nispeten büyük bir uygulama için 4096'ya ihtiyacınız olabilir.
ng build
Visual Studio kodunda komutu çalıştırdığımda aynı hatayı aldım . Ancak aynı şeyi Windows komut satırında aşağıdaki sırayla çalıştırdığımda başarılı bir şekilde inşa edebilirim.
Aşama 1.
set NODE_OPTIONS=--max_old_space_size=4096
Adım 2.
ng build
Visual Studio kodunda aşağıdaki ifadeleri çalıştırdığımda aynı hata mesajını aldım. Ama aynı şeyi Windows komut satırında çalıştırdığımda başarılı bir şekilde inşa edebilirim.
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
Bazı nedenlerden dolayı yukarıdaki yanıtların tümü benim için gerçekten işe yaramadı, sorunumu çözmek için aşağıdakileri yaptım:
node_modules
klasörü silmem gerekiyordunpm install
node --max_old_space_size = 4096 ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer
parametre eklemek --build-optimizer
benim durumumdaki sorunu çözdü.
Güncelleme:
Neden sadece --build-optimizer eklemenin sorunu çözdüğünden emin değilim, ancak açısal belgelere göre aot etkin olarak kullanılmalıdır, bu nedenle güncellenmiş komut aşağıdaki gibi olmalıdır
--build-optimizer=true --aot=true
Bu komutu proje klasörünüzde çalıştırın. Kullanım hizmet yerine inşa
node --max_old_space_size=8000 node_modules/@angular/cli/bin/ng serve --prod --port=4202
Satırı değiştir
"start": "ng serve -o --port 4300 --configuration=en"
ile
"start": "node --max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o --port 4300 --configuration=en"
NOT:
port - 4300 sabit değildir hangi portu seçtiğinize bağlıdır.
--max_old_space_size = 5096 çok sabit değil; herhangi bir değer 1024,2048,4096 vb.
Benim durumumda, tepkimenin tüm belleği kullanmasına neden olan bir özyinelemeydi .
Bu, kodumu yeniden düzenlerken ve bunu fark etmediğimde oldu.
const SumComponent = () => {
return (
<>
<SumComponent />
</>
)
}
Diğer düğüm uygulamalarında bu şöyle görünebilir:
const someFunction = () => {
...
someFunction();
...
}
SumComponent
a SumComponent
(a içeren a SumComponent
içerir SumComponent
) içerir
Benim için firebase paketiyle ilgili bir sorundu.
Package.json'unuz için yalnızca "@ firebase / database": "0.2.1" ekleyin, node_modules'i yeniden yükleyin ve çalışır.
Mevcut düğüm modülünü sildim ve sorunumu çözmek için aşağıdaki komutları çalıştırdım
npm install -all
npm audit fix
Başka bir açısal olmayan cevap (AWS Amplify'de bir react uygulaması oluştururken aynı sorunla karşılaşıyordum).
Emmanuel'in bahsettiği gibi, belleğin düğüm v10 ile düğüm v12 tarafından işlenme biçimindeki farktan geliyor gibi görünüyor.
Hafızayı boşuna artırmaya çalıştım. Ancak v12 düğümünü kullanarak bunu yaptı.
nvm use $VERSION_NODE_12
Oluşturma ayarlarınıza nasıl ekleme yapabileceğinizi @atlesp burada https://github.com/aws-amplify/amplify-console/issues/440#issuecomment-602626451
Lütfen düğüm sürümünüzü kontrol edin:
$ node -v
10.1.1 bir şeyse, aşağıdaki komutlarla kök düzey düğüm sürümünüzü güncellemeniz gerekir.
$ 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
Bittiğinde lütfen terminalinizi veya görsel stüdyonuzu yeniden başlatın.
İş 100 $
İonic kullanıcısı için lütfen aşağıdaki kodu paketinize ekleyin.json
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
app-scripts
, web üzerinden inşa ediyorsanız işe yarar , ancak ionic cordova build android
nasıl android veya komut dosyası oluşturursanız ?
Klasör adınızı kontrol edin. Klasör adınızda boşluklar varsa, bu tür sorunlar ortaya çıkar. Boşluk olmadan yeniden adlandırın. umarım işe yarar.
React uygulamasını VSCode üzerinde çalıştırırken bu oluyorsa, lütfen propTypes'ınızı kontrol edin, tanımlanmamış Proptypes aynı soruna yol açar.
#! / usr / bin / env düğümü --max-old-space-size = ionic-app-scripts.js dint çalışmasında 4096
Değiştiriliyor
node_modules / .bin / ionic-app-scripts.cmd
Toplayarak:
@IF EXIST "% ~ dp0 \ node.exe" ("% ~ dp0 \ node.exe" "% ~ dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js"% *) DEĞİL ( @SETLOCAL @SET PATHEXT =% PATHEXT:;. JS; =;% node --max_old_space_size = 4096 "% ~ dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js"% *)
Nişanlı olarak çalıştı
Bazen başarının anahtarı basitliktir. Kodunuzu while (i <= 10000) {}
artırmadan arayın i
;)
Projem için nodejs, typecript, iplik, npm, vb. Gibi tüm kütüphanelerimi güncelledikten sonra bu sorun ortadan kalktı.
Düğüm 12'den Düğüm 14'e güncelleme benim için sorunu çözdü