zybing
zybing
  • 发布:2026-01-04 15:53
  • 更新:2026-01-05 09:31
  • 阅读:114

uniapp vue3 vite ts 升级后报内存泄漏

分类:uni-app

升级后的主要依赖:
"@dcloudio/uni-app": "3.0.0-4080720251210001",
"@dcloudio/uni-app-harmony": "3.0.0-4080720251210001",
"@dcloudio/uni-app-plus": "3.0.0-4080720251210001",
"@dcloudio/uni-components": "3.0.0-4080720251210001",
"@dcloudio/uni-h5": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-alipay": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-baidu": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-harmony": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-jd": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-lark": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-qq": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-toutiao": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-weixin": "3.0.0-4080720251210001",
"@dcloudio/uni-mp-xhs": "3.0.0-4080720251210001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4080720251210001",

"@dcloudio/uni-automator": "3.0.0-4080720251210001",
"@dcloudio/uni-cli-shared": "3.0.0-4080720251210001",
"@dcloudio/uni-stacktracey": "3.0.0-4080720251210001",
"@dcloudio/vite-plugin-uni": "3.0.0-4080720251210001",

升级后运行 yarn uni -p mp-weixin 能编译成功,但是只要改动代码2、3次后,热编译很慢过几分钟报内存泄漏,报错信息如下:

DONE Build complete. Watching for changes...
Run method: open Weixin Mini Program Devtools, import dist/dev/mp-weixin run.
ready in 43115ms.

Compiling...
DONE Build complete. Watching for changes...
Compiling...

<--- Last few GCs --->

[15109:0x8ce80c000] 287303 ms: Scavenge (interleaved) 4022.9 (4128.3) -> 4021.9 (4129.6) MB, pooled: 0 MB, 18.54 / 0.00 ms (average mu = 0.644, current mu = 0.464) allocation failure;
[15109:0x8ce80c000] 288008 ms: Scavenge (interleaved) 4024.2 (4129.6) -> 4023.4 (4150.3) MB, pooled: 0 MB, 697.50 / 0.00 ms (average mu = 0.644, current mu = 0.464) allocation failure;

<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

1: 0x102982eac node::OOMErrorHandler(char const, v8::OOMDetails const&) [/usr/local/bin/node]
2: 0x102b5f30c v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate
, char const, v8::OOMDetails const&) [/usr/local/bin/node]
3: 0x102d6ea28 v8::internal::Heap::stack() [/usr/local/bin/node]
4: 0x102d6cdc8 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
5: 0x102d613bc v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
6: 0x102d61bf4 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
7: 0x102d44f14 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/local/bin/node]
8: 0x1031609d8 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long
, v8::internal::Isolate) [/usr/local/bin/node]
9: 0x103621e9c Builtins_WasmCEntry [/usr/local/bin/node]
10: 0x1036222e4 Builtins_StringAdd_CheckNone [/usr/local/bin/node]
11: 0x10e5e8c04
12: 0x10e5e72a0
13: 0x10365065c Builtins_ArrayMap [/usr/local/bin/node]
14: 0x10e5efc38
15: 0x10ea5d9f4
16: 0x10ea5fb38
17: 0x10365065c Builtins_ArrayMap [/usr/local/bin/node]
18: 0x10e5e80f8
19: 0x10358cef0 Builtins_InterpreterEntryTrampoline [/usr/local/bin/node]
20: 0x1035c9290 Builtins_AsyncFunctionAwaitResolveClosure [/usr/local/bin/node]
21: 0x1036944d8 Builtins_PromiseFulfillReactionJob [/usr/local/bin/node]
22: 0x1035b9594 Builtins_RunMicrotasks [/usr/local/bin/node]
23: 0x10358aaf4 Builtins_JSRunMicrotasksEntry [/usr/local/bin/node]
24: 0x102cc68f0 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate
, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
25: 0x102cc7198 v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
26: 0x102cc72d0 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate
, v8::internal::MicrotaskQueue) [/usr/local/bin/node]
27: 0x102cf44f4 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate
) [/usr/local/bin/node]
28: 0x102cf4c78 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate) [/usr/local/bin/node]
29: 0x1028819dc node::InternalCallbackScope::Close() [/usr/local/bin/node]
30: 0x102881484 node::InternalCallbackScope::~InternalCallbackScope() [/usr/local/bin/node]
31: 0x102986e58 node::fs::FileHandle::CloseReq::Resolve() [/usr/local/bin/node]
32: 0x1029a1800 node::fs::FileHandle::ClosePromise()::$_0::__invoke(uv_fs_s
) [/usr/local/bin/node]
33: 0x10297ac08 node::MakeLibuvRequestCallback<uv_fs_s, void ()(uv_fs_s)>::Wrapper(uv_fs_s) [/usr/local/bin/node]
34: 0x1035665e4 uvwork_done [/usr/local/bin/node]
35: 0x10356a314 uv__async_io [/usr/local/bin/node]
36: 0x10357e6ac uv
io_poll [/usr/local/bin/node]
37: 0x10356a87c uv_run [/usr/local/bin/node]
38: 0x102882518 node::SpinEventLoopInternal(node::Environment
) [/usr/local/bin/node]
39: 0x1029cd4b0 node::NodeMainInstance::Run() [/usr/local/bin/node]
40: 0x10293dd40 node::Start(int, char**) [/usr/local/bin/node]
41: 0x180f15d54 start [/usr/lib/dyld]
error Command failed with signal "SIGABRT".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

麻烦帮看一下怎么解决呢?

2026-01-04 15:53 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

您的问题属于Node.js内存溢出,常见于Vite构建大型项目时。根据经验,建议如下:

  1. 增加Node内存限制:在package.json的scripts中添加--max-old-space-size=4096参数:

    "scripts": {  
    "dev:mp-weixin": "node --max-old-space-size=4096 node_modules/@dcloudio/vite-plugin-uni/dist/index.mjs build --platform mp-weixin --watch"  
    }
  2. 清理缓存:删除node_modules/.vite目录并重启服务

  3. 优化配置:在vite.config.js中添加:

    export default defineConfig({  
    plugins: [uni()],  
    server: {  
    hmr: {  
      overlay: false  
    }  
    },  
    optimizeDeps: {  
    exclude: ['@dcloudio/uni-app']  
    }  
    })
  4. 检查项目结构:避免单文件过大,拆分大型组件

  5. 版本回退:当前使用的3.0.0-4080720251210001为开发版,建议改用稳定版如3.8.7.20230703(参考vue3-ts-cli-release文档

若仍无法解决,请联系官方技术支持:support@dcloud.io,提供HBuilderX版本及完整错误日志。

内容为 AI 生成,仅供参考
zybing

zybing (作者)

使用 3.8.7.20230703 后,项目直接跑不起来了,报错如下:

[plugin:build-plugin] "hasInjectionContext" is not exported by "node_modules/vue-demi/lib/index.mjs", imported by "node_modules/pinia/dist/pinia.mjs".
at ../node_modules/pinia/dist/pinia.mjs:6:9
4: @license MIT
5:
/
6: import { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set,...
^
7: import { setupDevtoolsPlugin } from '@vue/devtools-api';

@ support@dcloud.io

爱豆豆

爱豆豆 - 办法总比困难多

运行的那个端?node版本是多少?可以提供一个示例项目吗?

  • zybing (作者)

    不分端只要一改代码就内存溢出了,用 npx @dcloudio/uvm@latest 命令升级的

    2026-01-05 11:29

zybing

zybing (作者)

3.0.0-4080720251210001 是正式版啊,我要升级到最新正式版,你让我用 3.8.7.20230703 的话还是老版本啊

要回复问题请先登录注册