首页 > 其他分享 >vite打包失败 - out of memory

vite打包失败 - out of memory

时间:2022-10-14 15:03:32浏览次数:63  
标签:node old -- rollup build memory vite out


在做项目时,随着需求的不断增加,我们的代码文件会越来越大,但是在打包时,在 Node 中通过 JavaScript 使用内存的大小却是有限制的。于是,今天打算部署代码时,报错了:

<--- JS stacktrace --->

==== JS stack trace =========================================

0: ExitFrame [pc: 00007FF69790ABBD]
Security context: 0x01e6a86408d1
1: decode(aka decode) [000002AD02F874D1] [E:\vite-template\[email protected]@rollup\dist\shared\rollup.js:~133] [pc=0000039464A55451](this=0x037824a004b1 ,0x017863480119 <Very long string[1502653]>)
2: decodedSourcemap(aka decodedSourcemap) [000002AD02F8A979] [E:\vite-template\[email protected]@rollup\dist\shared\roll...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

解决方案

node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build

在网上找了以下解决方案:

  1. 升级node版本(未尝试:非必要,不升级,免得带来不兼容问题)
  2. 修改vite.config.ts里面的配置项:​​sourcemap: false​​。但是有时我们可能想在部署到dev环境里进行调试(有些场景在部署后才能发现),那关闭了sourcemap,就无法在部署环境进行调试了,也不推荐。
  3. 找了段修改的实例(并不起作用,cross-env找不到,即使安装了也没起作用,不知为何):
"scripts": {
"dev": "vite",
"build": "cross-env NODE_OPTIONS=--max_old_space_size=1024000 vite build",
"preview": "vite preview"
}

// 改进版也不起作用
"build": "set NODE_OPTIONS= --max_old_space_size=10240 && vite build",
  1. vite下面的issue讨论里面发现了点线索,如下(亲测可用):
node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build

​https://github.com/vitejs/vite/issues/2433#issuecomment-792914871​​​​​

​https://github.com/vitejs/vite/issues/2433#issuecomment-1159005523​

既然原因找到了(node 中使用内存受限),自己的问题也解决了(放宽该限制),探索到此为止。

参考地址:​​https://github.com/vitejs/vite/issues/2433​


标签:node,old,--,rollup,build,memory,vite,out
From: https://blog.51cto.com/u_11071029/5756599

相关文章