美文网首页
umi 项目打包异常 allocation failure sc

umi 项目打包异常 allocation failure sc

作者: 想溜了的蜗牛 | 来源:发表于2021-11-17 22:21 被阅读0次

    umi项目构建时经常会出些幺蛾子,今天这个是执行到 chunk asset optimization (92%) 就不动了,然后就报下边的异常:

    Webpack █████████████████████████ chunk asset optimization (92%)
     TerserPlugin
    
    Browserslist: caniuse-lite is outdated. Please run:
    npx browserslist@latest --update-db
    
    Why you should do it regularly:
    https://github.com/browserslist/browserslist#browsers-data-updating
    
    <--- Last few GCs --->
    
    [88024:0x102d4f000]   581469 ms: Mark-sweep 2042.1 (2057.7) -> 2038.5 (2057.7) MB, 961.6 / 0.0 ms  (average mu = 0.224, current mu = 0.151) allocation failure scavenge might not succeed
    [88024:0x102d4f000]   582630 ms: Mark-sweep 2042.7 (2058.2) -> 2039.2 (2058.4) MB, 981.1 / 0.0 ms  (average mu = 0.190, current mu = 0.155) allocation failure scavenge might not succeed
    
    
    <--- JS stacktrace --->
    
    ==== JS stack trace =========================================
    
        0: ExitFrame [pc: 0x1009d6059]
    Security context: 0x0b12a79808d1 <JSObject>
        1: /* anonymous */ [0xb129d34e601] [path/code/xxx/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:~87103] [pc=0x3480eb46f0cc](this=0x0b1219e42901 <JSGlobal Object>,0x0b12dbab9059 <String[1]: (>,0x0b12f494c7f9 <Object map = 0xb12c809db29>)
        2: SourceNode_walk [0xb123241cb99] [path/code/xxx/n...
    
    FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
     1: 0x1011c96b5 node::Abort() (.cold.1) [/path/.nvm/versions/node/v12.18.0/bin/node]
     2: 0x10009cae9 node::Abort() [/path/.nvm/versions/node/v12.18.0/bin/node]
     3: 0x10009cc4f node::OnFatalError(char const*, char const*) [/path/.nvm/versions/node/v12.18.0/bin/node]
     4: 0x1001ddbc7 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/path/.nvm/versions/node/v12.18.0/bin/node]
     5: 0x1001ddb67 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/path/.nvm/versions/node/v12.18.0/bin/node]
     6: 0x100365a65 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/path/.nvm/versions/node/v12.18.0/bin/node]
     7: 0x1003672da v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/path/.nvm/versions/node/v12.18.0/bin/node]
     8: 0x100363d0c v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/path/.nvm/versions/node/v12.18.0/bin/node]
     9: 0x100361b0e v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/path/.nvm/versions/node/v12.18.0/bin/node]
    10: 0x10036d9da v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/path/.nvm/versions/node/v12.18.0/bin/node]
    11: 0x10036da61 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/path/.nvm/versions/node/v12.18.0/bin/node]
    12: 0x10033b69a v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/path/.nvm/versions/node/v12.18.0/bin/node]
    13: 0x10068d080 v8::internal::Runtime_AllocateInOldGeneration(int, unsigned long*, v8::internal::Isolate*) [/path/.nvm/versions/node/v12.18.0/bin/node]
    14: 0x1009d6059 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/path/.nvm/versions/node/v12.18.0/bin/node]
    15: 0x3480eb46f0cc
    16: 0x3480eb45c158
    

    上网查了下,基本上是加大内存来解决,于是在 package.json 的script中修改对应命令如下:

    "scripts": {
            "start": "umi dev",
            "build": "cross-env NODE_OPTIONS=--max_old_space_size=4096 umi build",
            ...
    }
    

    再次打包还是不成功。
    网上接着找,如何做编译提速, 这篇说明截图如下

    image.png

    这里又是跟内存有关,试着在config中加上相应配置

    defineConfig({
        nodeModulesTransform: {
            type: 'none',
            exclude: [],
        },
        ......
    }
    

    再次编译,居然成功了。但没文章说的减少40%到60%的编译时间,跟之前是差不多少,但不重要,它能编译就行。

    相关文章

      网友评论

          本文标题:umi 项目打包异常 allocation failure sc

          本文链接:https://www.haomeiwen.com/subject/forktrtx.html