node.js - 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,我缺少什么?
当前环境
Windows 10 带 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"
}
}
解决方案
我不得不说这种行为很奇怪。由于npm
无论您在何处运行任何命令都会发生这种情况,因此可能是您的 npm install 刚刚损坏。npm
删除旧版本后,尝试从头开始重新安装。
另外,尝试使用yarn
替代包管理器。这并不理想,但它可能会让您在项目中走得更远。
推荐阅读
- swift - 节省步进器 SwiftUI 的价值
- python - 在 Plotly 中,如何在使用更新按钮在不同图形之间切换时动态更改轴标题
- jquery - 使用 jQuery 更新特定 th 下的单元格值到链接
- pyinstaller - PyInstaller:尝试运行分发文件时出现 FileNotFoundError
- github - 当 access_token 过期时, github api to refresh_token 会抛出 bad_refresh_token 错误
- qt - 将 QTextStream 转换为 QByteArray
- javascript - 对象对象显示在反应中的选择标签中
- java - Spring Boot 嵌入式 Apache Derby
- kubernetes - 如何经营一次性工作?
- python - 如何在 Pandas 中找到方法的源代码?