이 오류가 발생하는 것보다 "ionic serve"명령을 사용하여 ionic 3 프로젝트를 실행할 때 :
답변:
Google에서이 질문에 도달 한 사람들을위한 각도가 아닌 일반적인 답변 :
이 오류가 발생할 때마다 메모리 누수 또는 Node <= 10과 Node> 10이 메모리를 관리하는 방법의 차이 때문일 수 있습니다. 일반적으로 노드에 할당 된 메모리를 늘리는 것만으로 프로그램을 실행할 수 있지만 실제 문제를 실제로 해결하지 못할 수 있으며 노드 프로세스에서 사용하는 메모리는 할당 한 새 메모리를 초과 할 수 있습니다. 노드 프로세스가 실행되거나 노드> 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
node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/baseUrl/ --prod=true
라인 교체
"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
...)
node --max_old_space_size = 4096 ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer
매개 변수 추가 --build-optimizer
내 경우 문제가 해결되었습니다.
최신 정보:
--build-optimizer 만 추가하면 문제가 해결되는 이유는 모르겠지만 각도 문서에 따라 aot를 사용하도록 설정해야하므로 업데이트 된 명령은 다음과 같아야합니다.
--build-optimizer=true --aot=true
기존 노드 모듈을 삭제하고 아래 명령을 실행하여 문제를 해결했습니다.
npm install -all
npm audit fix
Pls는 노드 버전을 확인합니다.
$ 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 $
ionic 사용자 pls의 경우 package.json에 아래 코드를 추가하십시오.
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
app-scripts
하지만 Android 또는 스크립트를 ionic cordova build android
어떻게 구축하면 ?
각도가 아닌 또 다른 대답 (AWS Amplify에서 반응 앱을 구축하는 것과 동일한 문제에 직면했습니다).
Emmanuel이 언급했듯이 노드 v10과 노드 v12가 메모리를 처리하는 방식의 차이에서 비롯된 것 같습니다.
나는 아무 소용없이 기억력을 늘리려 고 노력했다. 그러나 노드 v12를 사용하여 수행했습니다.
Richard가 설명한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
나를 위해 구문 오류 (표시되지 않음)가 발생하여이 오류가 발생했습니다.
VSCode에서 React 애플리케이션을 실행할 때 이런 일이 발생하면 propTypes를 확인하십시오. 정의되지 않은 Proptypes는 동일한 문제로 이어집니다.
#! / usr / bin / env node --max-old-space-size = 4096 in the ionic-app-scripts.js dint work
수정
node_modules / .bin / ionic-app-scripts.cmd
추가하여:
@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"% *)
열심히 일했다
이 문제는 내 프로젝트의 nodejs, typescript, yarn, npm 등과 같은 모든 라이브러리를 업데이트 한 후에 사라졌습니다.