Next.js服务器构建出现error Command failed with signal "SIGBUS"求助
解决Next.js构建时的SIGBUS错误
以下是针对你遇到的error Command failed with signal "SIGBUS"错误的具体解决步骤,按顺序尝试即可:
检查服务器内存
SIGBUS错误大概率是内存不足导致的,Next.js生产构建需要一定内存资源。先执行free -h查看当前内存使用情况:- 如果可用内存不足,先关闭其他非必要的占用内存进程;
- 临时增加swap分区(适合小内存服务器,比如1G/2G内存的机器):
构建完成后,若不需要swap,可执行# 创建4G大小的swap文件,可根据需求调整数值 sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfilesudo swapoff /swapfile && sudo rm /swapfile删除。
检查磁盘空间
磁盘满了也会导致构建失败,执行df -h查看项目所在分区的剩余空间,确保至少有2-3G的余量。如果空间不足,清理日志、临时文件或者扩容磁盘。清理依赖缓存并重装依赖
依赖缓存损坏可能引发异常,执行以下命令重置依赖:rm -rf node_modules package-lock.json yarn.lock npm install # 用yarn的话换成yarn install完成后再运行
npm run build尝试构建。确认Node.js版本符合要求
Next.js对Node.js版本有明确要求,建议使用官方推荐的LTS版本(目前是18.x或20.x)。执行node -v查看当前版本,若版本不符,用nvm管理版本:# 安装nvm,重启终端后生效 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 安装并切换到LTS版本 nvm install --lts nvm use --lts切换版本后重新构建项目。
增加Node.js构建的内存限制
手动指定Node.js进程的内存上限,比如设置为4G:NODE_OPTIONS="--max-old-space-size=4096" npm run build数值可根据服务器实际内存调整,比如2G内存就设为2048。
内容的提问来源于stack exchange,提问作者Tsikitsiky
相关产品推荐
相关产品推荐

