大型的Nuxt項目,后期會積攢太多模塊和太多靜態資源,這樣會導致項目啟動緩慢,啟動和打包時候也會出現內存不足,無法成功的情況,導致這樣的原因如下:
在Node中通過JavaScript使用內存時就會發現只能使用部分內存(64位系統下約為1.4 GB,32位系統下約為0.7 GB)。在這樣的限制下,將會導致Node無法直接操作大內存對象,比如無法將一個2 GB的文件讀入內存中進行字符串分析處理,即使物理內存有32 GB。這樣在單個Node進程的情況下,計算機的內存資源無法得到充足的使用。
造成這個問題的主要原因在於Node基於V8構建,所以在Node中使用的JavaScript對象基本上都是通過V8自己的方式來進行分配和管理的。V8的這套內存管理機制在瀏覽器的應用場景下使用起來綽綽有余,足以勝任前端頁面中的所有需求。但在Node中,這卻限制了開發者隨心所欲使用大內存的想法。
盡管在服務器端操作大內存也不是常見的需求場景,但有了限制之后,我們的行為就如同帶着鐐銬跳舞,如果在實際的應用中不小心觸碰到這個界限,會造成進程退出。
(以上摘自 https://blog.csdn.net/gtLBTNq9mr3/article/details/90709000)
下面來講一下怎么處理:
1.使用最新版node環境
2.如果最新版node也不行的話,可以使用通過package.json安裝一些依賴,來限制內存的方法,如下:
"increase-memory-limit": "^1.0.7", "cross-env": "^7.0.2",
安裝完這兩個依賴以后,在script里添加一下命令
"fix-memory-limit": "cross-env LIMIT=8096 increase-memory-limit"
然后直接運行一下 npm run fix-memory-limit ,限制一下內存即可
然后,正常啟動項目或打包就可以了~~
嗯,就醬~~~