【问题标题】:NPM consumes all available memoryNPM 消耗所有可用内存
【发布时间】:2019-11-28 04:24:09
【问题描述】:

我正在尝试建立一个基本的节点项目。我有一个全新的节点安装(我已经在单独的全新安装上尝试过 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,我缺少什么?

当前环境

  • Windows 10 w/Powershell

  • 节点 v13.2.0

编辑 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"
  }
}

【问题讨论】:

  • 您能否将您的package.jsonnpmrc 文件包含在内?
  • 我已经添加了我的package.json,但我认为这与该问题无关,因为错误发生在项目内部和外部。我没有npmrc
  • 我问是因为有时安装前/安装后的脚本会做一些丑陋的事情。我猜不是你的情况。

标签: node.js windows powershell npm


【解决方案1】:

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

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

【讨论】:

  • 这和从头开始重新安装 Node 一样吗?这一切都是从我换掉一个 HD 开始的(以前的驱动器上有我的开发内容。)我之前有 npm / node 工作......我在这次迭代中已经完全重新安装了两次并且没有任何运气.我想有可能在临时或appdata 位置有一些先前安装的残余。我可能会尝试重新从头开始重新安装
【解决方案2】:

经过多次重新安装,我终于在this SO answer 的帮助下找到了问题所在。根据问题的上下文,我最近遇到了驱动器故障并安装了一个新的硬盘驱动器。这个新硬盘被赋予了不同的名称(从A: 切换到E:。)我发现了一个旧的.npmrc,我在之前的传递中错过了它,它将NPM 指向A: 驱动器上的缺失位置。一旦我删除了该文件,重新启动并重新安装 Node,我就可以再次使用 NPM 命令。

对我来说,这个问题导致 NPM 静默失败并吃掉所有内存对我来说似乎很奇怪。

【讨论】:

  • 超级奇怪。很高兴您找到了解决方案。
猜你喜欢
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 2020-09-04
  • 1970-01-01
相关资源
最近更新 更多