首页 > 解决方案 > NPM 消耗所有可用内存

问题描述

我正在尝试建立一个基本的节点项目。我有一个全新的节点安装(我已经在单独的全新安装上尝试过 Node 12 LTS 和 Node 13。)当我尝试运行 NPM 时,我收到一个堆限制错误。

E:\Development\MyProject> npm help install --verbose
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF784B5021F napi_wrap+124591
 2: 00007FF784AF0296 v8::base::CPU::has_sse+35542
 3: 00007FF784AF0F66 v8::base::CPU::has_sse+38822
 4: 00007FF785317E6E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF7852FF5C1 v8::SharedArrayBuffer::Externalize+785
 6: 00007FF7851C690C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436
 7: 00007FF7851D1C00 v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312
 8: 00007FF7851CE72F v8::internal::Heap::PageFlagsAreConsistent+3151
 9: 00007FF7851C3E83 v8::internal::Heap::CollectGarbage+1283
10: 00007FF7851C6A5A v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1770
11: 00007FF7851BCDC3 v8::base::CPU::has_vfp3+467
12: 00007FF784A9F70C v8::internal::wasm::JSToWasmWrapperCompilationUnit::~JSToWasmWrapperCompilationUnit+101820
13: 00007FF784A9E6A1 v8::internal::wasm::JSToWasmWrapperCompilationUnit::~JSToWasmWrapperCompilationUnit+97617
14: 00007FF784B99C5B uv_async_send+331
15: 00007FF784B993FC uv_loop_init+1212
16: 00007FF784B995C4 uv_run+244
17: 00007FF784ABC0F3 v8::internal::interpreter::BytecodeArrayWriter::source_position_table_builder+29635
18: 00007FF784B18080 node::Start+288
19: 00007FF7849D66FC RC4_options+339452
20: 00007FF785817678 v8::internal::SetupIsolateDelegate::SetupHeap+1290008
21: 00007FFD91A67BD4 BaseThreadInitThunk+20
22: 00007FFD9334CED1 RtlUserThreadStart+33

无论npm我运行什么命令,都会发生此错误。我曾尝试使用NODE_OPTIONS环境变量增加内存限制,但这只会使 NPM 在失败之前花费更长的时间来消耗所有内存。

为了能够运行 NPM,我缺少什么?

当前环境

编辑 2

可能值得注意的是,我之前已经运行过这个项目和 Node,但由于驱动器故障而不得不移除安装 Node 的硬盘。这是我尝试在我的机器上安装全新的 Node。

编辑 1

这是我的package.json,尽管错误发生在项目内部和外部。

{
  "name": "myProject",
  "version": "1.0.0",
  "description": "",
  "main": "app.jsx",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "wp": "webpack",
    "seed-db": "seed --db-name myProject --data ./seeds --drop-collection"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.4.3",
    "@babel/plugin-proposal-class-properties": "^7.4.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.4.3",
    "@babel/preset-env": "^7.4.3",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "^8.0.5",
    "css-loader": "^1.0.1",
    "jquery": "^3.4.0",
    "node-sass": "^4.11.0",
    "popper.js": "^1.15.0",
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.21.0",
    "uglifyjs-webpack-plugin": "^1.3.0",
    "webpack": "^4.17.1",
    "webpack-hot-middleware": "^2.24.3"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "extract-text-webpack-plugin": "^4.0.0-beta.0",
    "mongo-seeding": "^2.2.0",
    "mongo-seeding-cli": "^2.2.0",
    "npm": "^6.9.0",
    "webpack-cli": "^3.3.0"
  }
}

标签: node.jswindowspowershellnpm

解决方案


我不得不说这种行为很奇怪。由于npm无论您在何处运行任何命令都会发生这种情况,因此可能是您的 npm install 刚刚损坏。npm删除旧版本后,尝试从头开始重新安装。

另外,尝试使用yarn替代包管理器。这并不理想,但它可能会让您在项目中走得更远。


推荐阅读