Webpack打包報"JavaScript heap out of memory"錯誤

問題

開發項目有一段時間了,隨着項目愈來愈大,打包的時間也相應的變長了,打包時的內存也增多了。這時候產生了一個問題,在發佈項目的時候,會出現JavaScript heap out of memory錯誤的提示。
以下圖:
前端

以上錯誤一直致使,沒法發佈項目。
詳細錯誤內容:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memorynpm

緣由

Node中經過JavaScript使用內存時只能使用部份內存(64位系統:1.4 GB,32位系統:0.7 GB),這個時候,若是前端項目很是的龐大,Webpack編譯時就會佔用不少的系統資源,若是超出了V8引擎對Node默認的內存限制大小時,就會產生內存泄露(JavaScript heap out of memory)的錯誤。異步

解決方案

既然V8引擎有對Node進行默認的內存限制大小,那麼在Node內存不足的時候,能夠放寬內存大小的使用限制,能夠在Node啓動的時候,傳遞--max-old-space-size--max-new-space-size來調整內存大小的使用限制。
可是這種方式須要全部地方都要進行設置,所以須要安裝一個插件increase-memory-limitspa

使用方式以下:插件

  • 安裝
    npm install -g increase-memory-limit
  • 運行
    increase-memory-limit
  • npm 異步運行
"scripts": {
    "fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
  },
  "devDependencies": {
    "increase-memory-limit": "^1.0.3",
    "cross-env": "^5.0.5"
  }

執行一次npm run fix-memory-limitcode

插件:increase-memory-limitblog

相關文章
相關標籤/搜索