npm 报错:Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

报错详情

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",

猜你喜欢

转载自blog.csdn.net/tianxintiandisheng/article/details/112848172