Vite 打包 vue3项目报错 JS stacktrace 解决
Vite 打包 vue3项目报错 JS stacktrace 解决
使用vite打包vue3项目时,产生了报错,如下:
PS C:\Users\17634\Desktop\javaDemo\下单集成后端\plus-ui> npm run build:prod
> fy_system@5.3.1-2.3.0 build:prod
> vite build --mode production
vite v5.4.11 building for production...
<--- Last few GCs --->
[31216:000001CD269AD890] 58002 ms: Mark-Compact 2017.8 (2084.9) -> 2002.7 (2086.1) MB, 873.25 / 0.00 ms (average mu = 0.141, current mu = 0.051) allocation failure; scavenge might not succeed
[31216:000001CD269AD890] 59042 ms: Mark-Compact 2019.1 (2086.4) -> 2003.8 (2087.4) MB, 996.85 / 0.00 ms (average mu = 0.092, current mu = 0.041) allocation failure; scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----
1: 00007FF7AA600B6B node::SetCppgcReference+18123
2: 00007FF7AA5724D8 DSA_meth_get_flags+92504
3: 00007FF7AAFE9821 v8::Isolate::ReportExternalAllocationLimitReached+65
4: 00007FF7AAFD2F78 v8::Function::Experimental_IsNopFunction+1336
5: 00007FF7AAE34A20 v8::Platform::SystemClockTimeMillis+659328
6: 00007FF7AAE40CA3 v8::Platform::SystemClockTimeMillis+709123
7: 00007FF7AAE3E604 v8::Platform::SystemClockTimeMillis+699236
8: 00007FF7AAE31740 v8::Platform::SystemClockTimeMillis+646304
9: 00007FF7AAE46DBA v8::Platform::SystemClockTimeMillis+733978
10: 00007FF7AAE47637 v8::Platform::SystemClockTimeMillis+736151
11: 00007FF7AAE5026E v8::Platform::SystemClockTimeMillis+772046
12: 00007FF7AAE64AAA v8::Platform::SystemClockTimeMillis+856074
13: 00007FF7AAE64D93 v8::Platform::SystemClockTimeMillis+856819
14: 00007FF7AABF36BD v8::base::Thread::StartSynchronously+465885
15: 00007FF7AABF2F4E v8::base::Thread::StartSynchronously+463982
16: 00007FF7AAC305E3 v8::base::Thread::StartSynchronously+715523
17: 00007FF7AAC2F862 v8::base::Thread::StartSynchronously+712066
18: 00007FF7AAC323F9 v8::base::Thread::StartSynchronously+723225
19: 00007FF7AAC31F8E v8::base::Thread::StartSynchronously+722094
20: 00007FF7AAC30EF5 v8::base::Thread::StartSynchronously+717845
21: 00007FF7AAC33778 v8::base::Thread::StartSynchronously+728216
22: 00007FF7AAC33547 v8::base::Thread::StartSynchronously+727655
23: 00007FF7AAC780A8 v8::base::Thread::StartSynchronously+1009096
24: 00007FF7AAB0F1EB v8::CodeEvent::GetFunctionName+87035
25: 00007FF74B05AAFA
PS C:\Users\17634\Desktop\javaDemo\下单集成后端\plus-ui>
这个错误是由于 Node.js 内存不足 导致的(JavaScript heap out of memory)。Vite 打包大型项目时,特别是生产环境构建,需要较多内存,默认的 Node.js 内存限制可能不够,特此记录解决方法,如下:
-- 临时增加node打包内存限制,在执行打包命令时,通过 --max-old-space-size 参数临时增加 Node.js 的内存限制(单位:MB)。
// 1. 打开 package.json,找到打包脚本:
{
"scripts": {
"build:prod": "vite build --mode production"
}
}
// 2. 修改为
{
"scripts": {
"build:prod": "node --max-old-space-size=4096 node_modules/vite/bin/vite.js build --mode production"
}
}
//4096 表示 4GB 内存(根据电脑配置可调整为 8192 即 8GB)。
// 3. 重新打包即可
原理:通过 node 命令启动进程,先指定内存限制(--max-old-space-size=4096),再执行 Vite 的打包脚本(./node_modules/vite/bin/vite.js)。
--max-old-space-size是 Node.js 解释器的参数,必须放在 node 命令后,用于配置 Node 进程的内存上限。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 枫月Blog
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果