Cow*_*org 25 node.js npm typescript reactjs
我有一个 reactjs/typescript 项目,在 Windows 10 上运行。我试图通过 ts-scripts 构建
“rimraf ../wwwroot/* && react-scripts-ts build && copyfiles ./build/**/* ../wwwroot/ -u 1
这之前工作正常,但是当我删除 node_modules-folder 时,重新运行 npm install-command 然后上面的命令我收到错误消息
致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足
我不知道为什么。谷歌搜索后我见过
NODE_OPTIONS="–max-old-space-size=2048" 但我不知道把它放在哪里
完整的错误信息
最近几次 GC
[11376:0000024682F49880] 60039 ms: Mark-sweep 2034.1 (2085.2) -> 2033.7 (2085.2) MB, 1029.4 / 0.0 ms (average mu = 0.073, current mu = 0.006) allocation failure scavenge might not succeed
[11376:0000024682F49880] 61094 ms: Mark-sweep 2034.4 (2085.2) -> 2034.1 (2085.7) MB, 1047.7 / 0.0 ms (average mu = 0.039, current mu = 0.007) allocation failure scavenge might not succeed
JS stacktrace
==== JS stack trace =========================================
0: ExitFrame [pc: 000001CDF84DC5C1]
Security context: 0x007044b9e6e1 <JSObject>
1: bindChildrenWorker(aka bindChildrenWorker) [000001AD1C0ACD59] [C:\Users\robcar\source\repos\Boost\Boost.Web\ClientApp\node_modules\typescript\lib\typescript.js:~27657] [pc=000001CDF8FA47CA](this=0x03da79d826f1 <undefined>,node=0x034b8724ab71 <NodeObject map = 000000660468F931>)
2: bind(aka bind) [000001AD1C0AE2D9] [C:\Users\robcar\source\repos\B...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF6B5EA121A v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4810
2: 00007FF6B5E7A5B6 node::MakeCallback+4518
3: 00007FF6B5E7AFA0 node_module_register+2160
4: 00007FF6B610B3EE v8::internal::FatalProcessOutOfMemory+846
5: 00007FF6B610B31F v8::internal::FatalProcessOutOfMemory+639
6: 00007FF6B6649304 v8::internal::Heap::MaxHeapGrowingFactor+11476
7: 00007FF6B663FA67 v8::internal::ScavengeJob::operator=+25543
8: 00007FF6B663DFDC v8::internal::ScavengeJob::operator=+18748
9: 00007FF6B6646F57 v8::internal::Heap::MaxHeapGrowingFactor+2343
10: 00007FF6B6646FD6 v8::internal::Heap::MaxHeapGrowingFactor+2470
11: 00007FF6B61E9DD7 v8::internal::Factory::NewFillerObject+55
12: 00007FF6B6281ABA v8::internal::WasmJs::Install+29530
13: 000001CDF84DC5C1
Run Code Online (Sandbox Code Playgroud)
小智 24
我有一个类似的问题,虽然在 Mac 电脑上。设置环境变量对我有用。这样,您的节点进程将采用该值并独立于您正在运行的脚本使用它。
export NODE_OPTIONS=--max_old_space_size=4096
Run Code Online (Sandbox Code Playgroud)
再次运行您的命令。祝你好运!
One*_*mon 16
我使用的解决方案是将 node js 版本从v10升级到v12。
该命令export NODE_OPTIONS=--max_old_space_size=4096有效但有限制,例如您的机器上应该有足够的内存来运行生产版本。
我在 Windows 上遇到了同样的问题。解决方案是在运行 npm run build 之前设置 NODE_OPTIONS 变量。要设置此变量,只需运行set NODE_OPTIONS=--max_old_space_size=8192
增加节点 max_old_space 后我得到了修复。这是修复。
而不是运行 npm start 或 ng start。运行以下命令
node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve
Run Code Online (Sandbox Code Playgroud)
或者
您也可以在package.json文件中添加命令
"start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve"
Run Code Online (Sandbox Code Playgroud)
问题的根本原因是源文件太大。
您可以通过 2 个步骤解决该问题。
"start": "react-scripts --max_old_space_size=4096 start",
"build": "react-scripts --max_old_space_size=4096 build"
Run Code Online (Sandbox Code Playgroud)
set NODE_OPTIONS=--max_old_space_size=4096export NODE_OPTIONS=--max_old_space_size=4096另请注意,如果您使用的内存非常低,例如 512MB,则必须将其升级到至少 2GB 才能获得更好的结果。
这里我使用 4096MB = 4GB 大小,但您可以根据您的机器配置(特别是 RAM)更改此值。您可以将其设置为 2GB 或 1GB 并检查应用程序。
| 归档时间: |
|
| 查看次数: |
53042 次 |
| 最近记录: |