报错详情
PS C:\Users\sky\VsCodeProjects\yun-zhan-all\digital-expo-frontend> npm start
> [email protected] start C:\Users\sky\VsCodeProjects\yun-zhan-all\digital-expo-frontend
> umi dev
Starting the development server...
* Webpack █████████████████████████ after chunk asset optimization (93%) SourceMapDevToolPlugin umi.js
generate SourceMap
<--- Last few GCs --->
[15156:000001D42A6310D0] 107357 ms: Mark-sweep 1329.6 (1442.4) -> 1319.4 (1444.9) MB, 641.3 / 0.0 ms (average mu = 0.143, current mu = 0.037) allocation failure scavenge might not succeed
[15156:000001D42A6310D0] 107973 ms: Mark-sweep 1332.3 (1444.9) -> 1322.6 (1448.4) MB, 589.6 / 0.0 ms (average mu = 0.098, current mu = 0.044) allocation failure scavenge might not succeed
<--- JS stacktrace --->
==== JS stack trace =========================================
0: ExitFrame [pc: 000001ECBFDDC5C1]
1: StubFrame [pc: 000001ECBFD93770]
Security context: 0x01bbd261e6e9 <JSObject>
2: SourceMapConsumer_parseMappings [00000399E6EE34B9] [C:\Users\sky\VsCodeProjects\yun-zhan-all\digital-expo-frontend\node_modules\source-map\lib\source-map-consumer.js:~468] [pc=000001ECC18E5580](this=0x0094ae08f319 <BasicSourceMapConsumer map = 000002109834BDC1>,aStr=0x02f1f6841a61 <Very long string[11840]>,aSo...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF71532F04A v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+5114
2: 00007FF71530A0C6 node::MakeCallback+4518
3: 00007FF71530AA30 node_module_register+2032
4: 00007FF7155920EE v8::internal::FatalProcessOutOfMemory+846
5: 00007FF71559201F v8::internal::FatalProcessOutOfMemory+639
6: 00007FF715AB2BC4 v8::internal::Heap::MaxHeapGrowingFactor+9556
7: 00007FF715AA9C46 v8::internal::ScavengeJob::operator=+24310
8: 00007FF715AA829C v8::internal::ScavengeJob::operator=+17740
9: 00007FF715AB0F87 v8::internal::Heap::MaxHeapGrowingFactor+2327
10: 00007FF715AB1006 v8::internal::Heap::MaxHeapGrowingFactor+2454
11: 00007FF71566CDB7 v8::internal::Factory::NewFillerObject+55
12: 00007FF715702CC6 v8::internal::WasmJs::Install+29414
13: 000001ECBFDDC5C1
项目配置信息
{
"name": "cloud_exhibition_fe",
"version": "0.1.0",
"private": true,
"scripts": {
"start": "umi dev",
"build": "umi build",
"build_pro": "NODE_ENV=production umi build",
"build_dev": "NODE_ENV=development umi build",
"build:p": "webpack ./plugins/kefu",
"release": "NODE_ENV=release umi build",
"test": "umi test",
"eslint": "eslint --ext .js --ext .jsx ./src",
"postinstall": "umi g tmp",
"lint-staged": "lint-staged",
"tsc": "tsc",
"zip": "node scripts/pack.js",
"docker": "npm run zip && chmod 777 ./publish/startup-docker-container.sh && ./publish/startup-docker-container.sh"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx}": [
"eslint --fix",
"git add"
]
},
"pre-commit": [
"lint-staged"
],
"dependencies": {
"@ali-whale/antd-tools": "^0.7.61",
"@ali-whale/antd3-form": "^0.8.8",
"@ali-whale/cbd-qrcode": "^0.7.58",
"@ali-whale/class-prefix": "^0.7.58",
"@ali-whale/icon": "^0.8.3",
"@ali-whale/imageviewer": "^0.8.3",
"@ali-whale/text-overflow": "^0.7.44",
"@ali-whale/utils": "^0.7.46",
"@ant-design/icons": "^4.1.0",
"@ant-design/pro-layout": "5.0.12",
"@ant-design/pro-table": "2.2.7",
"ali-oss": "6.8.0",
"aliyun-webrtc-sdk": "^1.14.2",
"antd": "4.2.2",
"antd-img-crop": "^3.9.0",
"antd-mobile-demo-data": "^0.3.0",
"braft-editor": "2.3.9",
"braft-utils": "^3.0.12",
"classnames": "2.2.6",
"crypto-js": "4.0.0",
"dayjs": "1.8.27",
"dva": "2.6.0-beta.6",
"echarts": "^4.9.0",
"events": "^3.2.0",
"fetch-jsonp": "1.1.3",
"html2canvas": "^1.0.0-rc.7",
"js-file-download": "0.4.12",
"js-sha256": "^0.9.0",
"lodash": "4.17.15",
"qrcode": "^1.4.4",
"qrcode.react": "1.0.0",
"react": "16.8.6",
"react-beautiful-dnd": "^13.0.0",
"react-color": "^2.18.1",
"react-copy-to-clipboard": "5.0.2",
"react-dom": "16.8.6",
"react-draggable-tags": "^1.0.2",
"redux-persist": "6.0.0",
"swiper": "^6.2.0",
"umi-request": "1.2.19",
"yorkie": "^2.0.0"
},
"devDependencies": {
"@ali-whale/eslint": "0.7.3",
"@umijs/preset-react": "1",
"art-template": "4.13.2",
"art-template-loader": "1.4.3",
"babel-eslint": "10.0.1",
"easemob-websdk": "^3.3.2",
"eslint": "5.12.1",
"eslint-config-airbnb": "17.1.0",
"eslint-config-prettier": "3.5.0",
"eslint-config-umi": "1.4.0",
"eslint-plugin-flowtype": "2.50.0",
"eslint-plugin-import": "2.14.0",
"eslint-plugin-jsx-a11y": "6.1.2",
"eslint-plugin-react": "7.12.4",
"events": "^3.2.0",
"lint-staged": "8.1.0",
"pre-commit": "1.2.2",
"react-test-renderer": "16.7.0",
"tar": "^6.0.2",
"umi": "3",
"webpack": "4.43.0",
"webpack-cli": "3.3.11"
},
"engines": {
"node": ">=8.0.0"
}
}
解决方案
通过 NODE_OPTIONS 设置内存上限
如果出现 OOM,也可以通过增加内存上限尝试解决。比如 NODE_OPTIONS=–max_old_space_size=4096 设置为 4G。
参考资料: UimiJs 如何做编译提速
编码实战
修改package.json文件中script中的命令,添加set NODE_OPTIONS=--max_old_space_size=4096
,如下所示
"start": "set NODE_OPTIONS=--max_old_space_size=4096 && umi dev",