Svelte项目执行npm run dev启动Rollup服务报JS堆内存不足如何解决
问题根因定位
报错核心是Node.js运行时堆内存溢出,此前livereload服务连接异常、强制退出VSCode的操作大概率留下了挂起的Node残留进程,或是生成了异常构建缓存,导致启动dev服务时内存占用持续走高超过默认限制。
解决步骤
- 清理残留Node进程
终端执行命令:ps aux | grep node | grep -v grep | awk '{print $2}' | xargs kill -9,终止所有异常挂起的Node进程,释放占用的端口和内存资源 - 清除项目异常缓存
依次删除项目目录下的.rollup.cache、node_modules/.cache、依赖锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),执行npm install重新安装依赖 - 调高Node堆内存上限
修改package.json中的dev命令,添加Node内存限制参数:
其中8192代表给Node分配8G运行内存,可根据设备配置调整为4096(4G)等值"scripts": { "dev": "NODE_OPTIONS=--max-old-space-size=8192 rollup -c -w" } - 排查插件配置冲突
先临时注释rollup.config.js中的livereload插件配置,启动npm run dev验证是否还会出现内存溢出。如果可以正常启动,再重新配置livereload的端口、监听目录参数,避免端口占用、或是监听了不必要的大体积目录导致内存占用过高 - 排查代码异常
检查近期新增的代码是否有引入超大体积未压缩的静态资源、存在循环引用的组件/模块,这类问题也会导致构建时内存持续上涨直至溢出
内容的提问来源于stack exchange,提问作者laura
相关产品推荐
相关产品推荐

