Linux Mint下运行sapper dev无法监听localhost且报堆内存溢出错误
之前方案无效的原因
increase-memory-limit仅适配Node.js v10及更早版本,对v12+版本完全失效set NODE_OPTIONS=xxx是Windows系统的环境变量设置语法,Linux系统下需要使用export命令配置才会生效
解决方案
- 正确配置Node内存限制
- 单次临时生效:运行dev命令前先执行
export NODE_OPTIONS=--max-old-space-size=4096,再执行npm run dev - 项目内永久生效:修改package.json中的dev脚本为:
"dev": "NODE_OPTIONS=--max-old-space-size=4096 sapper dev"
- 单次临时生效:运行dev命令前先执行
- 清理无效缓存与依赖
执行以下命令重装依赖,排除依赖版本冲突导致的内存泄漏:rm -rf node_modules package-lock.json npm cache clean --force npm install - 排查项目编译异常点
- 检查static目录是否存放了超过100MB的大体积媒体、压缩包等文件,此类文件会被sapper默认纳入编译流程占用大量内存,可临时移出测试启动效果
- 排查近期新增的代码是否存在循环导入、无限递归逻辑,这类问题也会导致编译时内存溢出
- 适配兼容运行版本
当前使用的Node.js v14.16.1属于旧版本LTS,可通过nvm切换到Node.js v16/v18的LTS版本,重新安装依赖后尝试启动,避免旧版本Node自身的内存泄漏bug - 降低dev模式资源占用
启动时关闭热重载功能,减少编译时内存开销:sapper dev --no-hot
内容的提问来源于stack exchange,提问作者Roby Cigar
相关产品推荐
相关产品推荐

