我在一个Nx monorepo中工作,有许多Angular 15应用程序和一些共享库。我使用nx cli生成了一个新的Angular应用程序,它工作得很好。我可以提供和构建应用程序没有问题。
当我将新应用程序的tsconfig文件添加到eslintrc.json文件时,出现了问题
"overrides": [
"parserOptions": {
"project": [
"apps/new-app/tsconfig.*?.json"
"libs/shared/tsconfig.*?.json"
*/ -----
15 others
-----/*
]
}
]
如果我将新应用程序添加到parserOptions中,则运行
nx affected --target=lint
我得到这个错误的共享库没有被触及
<--- Last few GCs --->
[18664:0000015D230EE780] 71334 ms: Scavenge 4044.3 (4127.2) -> 4039.4 (4128.5) MB, 12.6 / 0.0 ms (average mu = 0.835, current mu = 0.632) allocation failure
[18664:0000015D230EE780] 71386 ms: Scavenge 4047.0 (4130.1) -> 4043.9 (4131.8) MB, 14.5 / 0.1 ms (average mu = 0.835, current mu = 0.632) allocation failure
[18664:0000015D230EE780] 72392 ms: Scavenge 4048.8 (4131.8) -> 4045.8 (4150.1) MB, 989.7 / 0.0 ms (average mu = 0.835, current mu = 0.632) allocation failure
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF7DB8A0B5F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+124015
2: 00007FF7DB82C916 v8::internal::wasm::WasmCode::safepoint_table_offset+64182
3: 00007FF7DB82D992 v8::internal::wasm::WasmCode::safepoint_table_offset+68402
4: 00007FF7DC161D94 v8::Isolate::ReportExternalAllocationLimitReached+116
5: 00007FF7DC14C35D v8::SharedArrayBuffer::Externalize+781
6: 00007FF7DBFEF93C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1468
7: 00007FF7DBFECA54 v8::internal::Heap::CollectGarbage+4244
8: 00007FF7DBFEA3D0 v8::internal::Heap::AllocateExternalBackingStore+2000
9: 00007FF7DC00EF56 v8::internal::Factory::NewFillerObject+214
10: 00007FF7DBD416F5 v8::internal::DateCache::Weekday+1797
11: 00007FF7DC1EFA71 v8::internal::SetupIsolateDelegate::SetupHeap+494417
12: 0000015D254F5AEA
如果我从parserOptions中删除新的应用程序并运行lint,那么除了新的应用程序之外,linter的所有操作都会成功,错误告诉我将tsconfig添加到parserOptions中
我在windows上运行,使用的是node版本v16.18.1,我已经尝试通过几种方式使用--max-old-space-size=6144/--max_old_space_size=6144来增加可用内存。
有谁知道是什么导致了这个问题,或者如何解决它?虽然除了nxlint之外,其他都可以正常工作,但我的公司使用nx内置的lint命令来验证代码,然后才能推送或合并代码
1条答案
按热度按时间siv3szwd1#
对我来说,修复方法是改变我在每个应用程序中指定tsconfig.json的方式。本来我有
将此更改为
似乎修复了这个问题,所有正确的文件包括在内,没有内存问题。
很奇怪的问题,我很想听听解释。对我来说,当我迁移到Nx 16和Angular 16时,它会随机弹出-即使在运行迁移之后。我不确定你的情况是否不同。有趣的是,在CI机器(Ubuntu 22.04.2,x64)上没有任何问题,但我的开发机器和另一台机器(macOS 13.4,arm 64)都有问题。