最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

angular4的JS內(nèi)存溢出問題如何解決

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:55:57
文檔

angular4的JS內(nèi)存溢出問題如何解決

angular4的JS內(nèi)存溢出問題如何解決:這次給大家?guī)韆ngular4的JS內(nèi)存溢出問題如何解決,解決angular4的JS內(nèi)存溢出問題注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。 最近在寫基于angular4的項(xiàng)目的時候,在build --prod的時候,突然措手不及的蹦出個報(bào)錯,大致錯誤如下:70% buildi
推薦度:
導(dǎo)讀angular4的JS內(nèi)存溢出問題如何解決:這次給大家?guī)韆ngular4的JS內(nèi)存溢出問題如何解決,解決angular4的JS內(nèi)存溢出問題注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。 最近在寫基于angular4的項(xiàng)目的時候,在build --prod的時候,突然措手不及的蹦出個報(bào)錯,大致錯誤如下:70% buildi

這次給大家?guī)韆ngular4的JS內(nèi)存溢出問題如何解決,解決angular4的JS內(nèi)存溢出問題注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。

最近在寫基于angular4的項(xiàng)目的時候,在build --prod的時候,突然措手不及的蹦出個報(bào)錯,大致錯誤如下:

70% building modules 1345/1345 modules 0 active
<--- Last few GCs --->
ms: Mark-sweep 703.9 (837.9) -> 701.4 (811.9) MB, 331.3 / 0 ms [allocation failure] [GC in old space requested].
ms: Mark-sweep 701.4 (811.9) -> 701.4 (790.9) MB, 350.5 / 0 ms [allocation failure] [GC in old space requested].
ms: Mark-sweep 701.4 (790.9) -> 698.0 (760.9) MB, 433.7 / 0 ms [last resort gc].
ms: Mark-sweep 698.0 (760.9) -> 692.7 (751.9) MB, 328.7 / 0 ms [last resort gc].
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 00000298510373A9 <JS Object>
 1: /* anonymous */(aka /* anonymous */) [D:\dev\cobalt_wp\node_modules\webpack\lib\FlagDependencyExportsPlugin.js:77] [pc=0000026F721B51D6] (this=0000029851004131 <undefined>,dep=00000150FC6162C9 <a NormalModule with map 0000025741730C01>)
 2: arguments adaptor frame: 3->1
 3: InnerArrayForEach(aka InnerArrayForEach) [native array.js:~924] [pc=0000026F71EE3DCD] (this=000002985100413...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

注:這里的代碼并不是我的真實(shí)報(bào)錯代碼,編譯時間太長,忘記截取了,大致的錯誤基本一樣,如果你遇到了相同的問題,恭喜了,往下看能找到答案!

當(dāng)時我是蒙圈了,一直都編譯的挺好,怎么突然就溢出了呢?

可能的原因有如下:

1.angular4 在編譯的時候,對CPU和內(nèi)存的需求比較大,當(dāng)文件數(shù)量很多的時候,可能會出現(xiàn)內(nèi)存不足的情況(有可能);

2.當(dāng)代碼出現(xiàn)大量大數(shù)據(jù)的循環(huán)或者死循環(huán)(sever階段并沒有出現(xiàn)溢出,這個概率應(yīng)該不大);

3.angular訂閱的數(shù)據(jù)在 ngOnDestroy 階段沒有被銷毀,造成大量數(shù)據(jù)占用內(nèi)存(有可能)

目前沒有查到具體是什么原因造成的,哪位大神知道的,請不吝賜教,謝謝!

解決這個問題的過程很波折,這里就不說了,你們估計(jì)也不想知道,下面說一下解決方案吧:

核心思路是運(yùn)用v8引擎的舊屬性: --max_old_space_size 來修改內(nèi)存上線,至于這個屬性在哪里設(shè),就是一個磨人的小妖精了!

修改目錄: my-project/node_modules/.bin 找到 ng.cmd :

@IF EXIST "%~dp0\node.exe" (
 "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_cli@1.0.0@@angular\cli\bin\ng" %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node --max_old_space_size=8192 "%~dp0\..\._@angular_cli@1.0.0@@angular\cli\bin\ng" %*
)

修改目錄: my-project/node_modules/.bin 找到 ngc.cmd :

@IF EXIST "%~dp0\node.exe" (
 "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
)

看到里面的--max_old_space_size設(shè)置了嗎? 至于數(shù)字設(shè)多少,你們自己看著辦吧,我的項(xiàng)目比較大,設(shè)個大點(diǎn)的值,以防不測,哈哈!

然后執(zhí)行 ng build --prod ,你以為這樣就行了嗎?這才是關(guān)鍵的地方!

本人親測,如上設(shè)置,再執(zhí)行編譯依然會報(bào)內(nèi)存溢出,貌似并沒什么卵用!把當(dāng)前目錄切換到 my-project/node_modules/.bin 然后再執(zhí)行 ng build --prod , 世界一下子就和平了! 本人親測有效,收好不謝!

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!

推薦閱讀:

vue使用xe-utils函數(shù)庫的步奏詳解

Vue在打包項(xiàng)目以后刷新顯示404應(yīng)該怎么處理

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

angular4的JS內(nèi)存溢出問題如何解決

angular4的JS內(nèi)存溢出問題如何解決:這次給大家?guī)韆ngular4的JS內(nèi)存溢出問題如何解決,解決angular4的JS內(nèi)存溢出問題注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。 最近在寫基于angular4的項(xiàng)目的時候,在build --prod的時候,突然措手不及的蹦出個報(bào)錯,大致錯誤如下:70% buildi
推薦度:
標(biāo)簽: 內(nèi)存 的問題 溢出
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top