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"