FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed

1、错误描述

Administrator@USER-0GUONPPBHK MINGW64 /g/HBuilderXWork/erp-html (master)
$ npm run dev

> erp2@0.1.0 dev G:HBuilderXWorkerp-html
> vue-cli-service serve

 INFO  Starting development server...
 69% building 795/799 modules 4 active ...jslibrarymoduleses6.object.assign.js
<--- Last few GCs --->

[7584:0000000000189BE0]    27378 ms: Mark-sweep 1154.6 (1451.3) -> 1143.5 (1453.8) MB, 111.9 / 0.0 ms  (average mu = 0.252, current mu = 0.245) allocation failure scavenge might not succeed
[7584:0000000000189BE0]    27543 ms: Mark-sweep 1156.6 (1453.8) -> 1144.6 (1454.8) MB, 136.6 / 0.0 ms  (average mu = 0.212, current mu = 0.173) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0000039194C50461]
Security context: 0x0035d821d949 <JSObject>
    1: DoJoin(aka DoJoin) [00000035D8205DE9] [native array.js:~89] [pc=0000039194F65E18](this=0x02bfff5825b1 <undefined>,0x0261fd63b6e1 <JSArray[2]>,2,0x02bfff582741 <true>,0x0035d8255019 <String[1]: 
>,0x02bfff582801 <false>,0x02bfff5825b1 <undefined>,0x02bfff5825b1 <undefined>)
    2: Join(aka Join) [00000035D8205E39] [native array.js:~115] [pc=0000039...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 000000013F37EDDA v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4618
 2: 000000013F325FC6 uv_loop_fork+79638
 3: 000000013F326B30 uv_loop_fork+82560
 4: 000000013F7E4E1E v8::internal::FatalProcessOutOfMemory+798
 5: 000000013F7E4D57 v8::internal::FatalProcessOutOfMemory+599
 6: 000000013FABECB4 v8::internal::Heap::RootIsImmortalImmovable+14788
 7: 000000013FAB48F4 v8::internal::Heap::CollectGarbage+7556
 8: 000000013FAB2FC8 v8::internal::Heap::CollectGarbage+1112
 9: 000000013FABC937 v8::internal::Heap::RootIsImmortalImmovable+5703
10: 000000013FABC9B6 v8::internal::Heap::RootIsImmortalImmovable+5830
11: 000000013F67C42B v8::internal::Factory::AllocateRawWithImmortalMap+59
12: 000000013FE23A6D v8::internal::compiler::RawMachineAssembler::MakeNode+151277
13: 0000039194C50461
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! erp2@0.1.0 dev: `vue-cli-service serve`
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the erp2@0.1.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     F:
odejs
ode_cache\_logs2019-09-03T04_01_02_161Z-debug.log

2、错误原因

      在vue.js引入ztree插件,导入很多的JavaScript文件,导致JavaScript内存溢出

      package.json配置

{
  "name": "erp2",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "axios": "^0.19.0",
    "core-js": "^2.6.5",
    "element-ui": "^2.11.1",
    "js-cookie": "^2.2.1",
    "nprogress": "^0.2.0",
    "vue": "^2.6.10",
    "vue-amap": "^0.5.10",
    "vue-router": "^3.1.2",
    "vuex": "^3.1.1"
  },
  "devDependencies": {
    "@babel/core": "7.0.0",
    "@babel/register": "7.0.0",
    "@vue/cli-plugin-babel": "3.5.3",
    "@vue/cli-plugin-eslint": "^3.9.1",
    "@vue/cli-plugin-unit-jest": "3.5.3",
    "@vue/cli-service": "3.5.3",
    "@vue/test-utils": "1.0.0-beta.29",
    "autoprefixer": "^9.5.1",
    "babel-core": "7.0.0-bridge.0",
    "babel-eslint": "10.0.1",
    "babel-jest": "23.6.0",
    "chalk": "2.4.2",
    "chokidar": "2.1.5",
    "connect": "3.6.6",
    "eslint": "5.15.3",
    "eslint-plugin-vue": "5.2.2",
    "fuse.js": "^3.4.5",
    "html-webpack-plugin": "3.2.0",
    "husky": "1.3.1",
    "lint-staged": "8.1.5",
    "mockjs": "^1.0.1-beta3",
    "node-sass": "^4.9.0",
    "plop": "2.3.0",
    "runjs": "^4.3.2",
    "sass-loader": "^7.1.0",
    "screenfull": "^4.2.1",
    "script-ext-html-webpack-plugin": "2.1.3",
    "script-loader": "0.7.2",
    "serve-static": "^1.13.2",
    "svg-sprite-loader": "4.1.3",
    "svgo": "1.2.0",
    "vue-template-compiler": "2.6.10"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}

3、解决办法

(1)修改node.js运行时的缓存

"serve" : "node --max_old_space_size=4096 node_modules/.bin/vue-cli-service serve --open"
原文地址:https://www.cnblogs.com/hzcya1995/p/13313697.html