Коли я запускаю проект ionic 3 за допомогою команди "ionic serve", ніж отримую цю помилку:
Відповіді:
Для загальної відповіді, яка не стосується кута, для тих, хто потрапляє на це питання від Google:
Кожного разу, коли ви стикаєтеся з цією помилкою, це, ймовірно, через витік пам'яті або різницю між тим, як Node <= 10 і Node> 10 керують пам'яттю. Зазвичай просто збільшення пам'яті, виділеної Node, дозволить вашій програмі працювати, але насправді не може вирішити справжню проблему, і пам'ять, що використовується процесом вузла, все одно може перевищувати нову пам'ять, яку ви виділите. Я б порадив профілювати використання пам'яті у вашому процесі вузла, коли він починає запускатися або оновлюватися до вузла> 10.
У мене витік пам’яті. Ось чудова стаття про налагодження витоків пам'яті у вузлі.
Тим не менш, для збільшення пам’яті в терміналі, де ви запускаєте процес Node:
export NODE_OPTIONS="--max-old-space-size=8192"
де значення max-old-space-size
можуть бути: [2048, 4096, 8192, 16384]
і т.д.
[ОНОВЛЕННЯ] Інші приклади для подальшої наочності:
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
почали розбивати наш додаток із функцією швидкого оновлення.
У моєму випадку виправте цю проблему при встановленні NodeJs, версія 12.10.0
та сама проблема на сервері centos 7, але це вирішило мою проблему:
node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod
Де X = (2048 or 4096 or 8192 o..)
цінність пам’яті
ng serve
і а масивний .js файл , вказаний в scripts
розділі , angular.json
який необхідно завантажити в пам'ять.
Спробуйте це рішення, на яке було вказано у старому повідомленні на форумі: https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-working/107061/24
відчинено node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js
Змініть перший рядок із:
#!/usr/bin/env node
до
#!/usr/bin/env node --max-old-space-size=4096
Спробуйте значення 1024 і 2048, але для відносно великого додатка вам може знадобитися 4096.
Я отримав ту ж помилку під час виконання ng build
команду в коді Visual Studio. Але я можу успішно будувати, коли виконую те саме в командному рядку Windows у такій послідовності.
Крок 1.
set NODE_OPTIONS=--max_old_space_size=4096
Крок 2.
ng build
Я отримав те саме повідомлення про помилку, коли виконую наступні оператори в коді Visual Studio. Але я можу успішно будувати, коли виконую те саме в командному рядку Windows.
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
З якихось причин усі відповіді, наведені вище, для мене насправді не працювали, я зробив наступне, щоб виправити свою проблему:
node_modules
папкуnpm install
Замініть рядок
"start": "ng serve -o --port 4300 --configuration=en"
з
"start": "node --max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o --port 4300 --configuration=en"
ПРИМІТКА:
port - 4300 не є постійним, залежить від того, який порт ви вибрали.
--max_old_space_size = 5096 занадто непостійний; будь-яке значення 1024,2048,4096 тощо
У моєму випадку це була рекурсія, яка викликала реакцію, щоб зайняти всю пам’ять.
Це сталося, коли я переробляв свій код і не помітив цього.
const SumComponent = () => {
return (
<>
<SumComponent />
</>
)
}
В інших програмах вузлів це може виглядати так:
const someFunction = () => {
...
someFunction();
...
}
SumComponent
містить SumComponent
(що містить, SumComponent
що містить SumComponent
...)
вузол --max_old_space_size = 4096 ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer
додавання параметра --build-optimizer
вирішило проблему в моєму випадку.
Оновлення:
Я не впевнений, чому додавання лише - build-optimizer вирішує проблему, але відповідно до angular docs його слід використовувати з увімкненим aot, тому оновлена команда повинна виглядати нижче
--build-optimizer=true --aot=true
Запустіть цю команду у папці проекту. Використовуйте службу замість побудови
node --max_old_space_size=8000 node_modules/@angular/cli/bin/ng serve --prod --port=4202
Для мене це була проблема з пакетом firebase.
Додайте лише "@ firebase / database": "0.2.1" для вашого package.json, переінсталюйте node_modules і працює.
Я видалив існуючий модуль вузла та запустив наведені нижче команди, щоб виправити свою проблему
npm install -all
npm audit fix
Будь ласка, перевірте версію вашого вузла:
$ node -v
Якщо це 10.1.1, то вам потрібно оновити версію вузла кореневого рівня за допомогою команд нижче
$ 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
Після закінчення, будь ласка, перезапустіть термінал або візуальну студію.
Це робота 100 $
Для іонних користувачів, будь ласка, додайте код нижче у ваш package.json
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
app-scripts
, але якщо ви збираєте андроїд або сценарій, ionic cordova build android
як?
Ще одна некутова відповідь (я стикався з тією ж проблемою, створюючи додаток для реагування на AWS Amplify).
Як згадував Еммануель, здається, що це походить від різниці в способі обробки пам'яті вузлом v10 та вузлом v12.
Я намагався збільшити пам'ять безрезультатно. Але за допомогою node v12 це вдалося.
Перевірте, як ви можете додати nvm use $VERSION_NODE_12
налаштування збірки, як пояснив Річард
frontend:
phases:
preBuild:
commands:
- nvm use $VERSION_NODE_12
- npm ci
build:
commands:
- nvm use $VERSION_NODE_12
- node -v
- npm run-script build
Для мене проблема полягала в наявності додаткової node_modules
папки, яку я перейменовував, node_modules_old
та запуску npm install
для створення нової node_modules
. Якось збірка, напевно, все ще забирала node_modules_old
папку, тому я node_modules_old
вийшов із каталогу, щоб вирішити проблему.
Для мене у мене була синтаксична помилка (яка не відображалася) і спричинила цю помилку.
Перевірте назву вашої папки. Якщо у назві вашої папки є пробіли, такі проблеми виникнуть. Перейменувати без пробілів. сподіваюся, це спрацює.
Якщо це трапляється під час запуску програми React на VSCode, перевірте свої propTypes, невизначені Proptypes призводять до тієї ж проблеми.
#! / usr / bin / env вузол --max-old-space-size = 4096 у роботі int ionic-app-scripts.js
Модифікуючи
node_modules / .bin / ionic-app-scripts.cmd
Додавши:
@IF ІСНУЄ "% ~ dp0 \ node.exe" ("% ~ dp0 \ node.exe" "% ~ dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js"% *) Інакше ( @SETLOCAL @SET PATHEXT =% PATHEXT:;. JS; =;% node --max_old_space_size = 4096 "% ~ dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js"% *)
Працював по-доброму
Іноді простота є запорукою успіху. Шукайте while (i <= 10000) {}
без збільшення i
вашого коду;)
Цю проблему не було, після того як я оновив усі свої бібліотеки, такі як nodejs, typecript, yarn, npm тощо для свого проекту.