部署Laravel+Inertia.js(Vue)至DigitalOcean时npm run build卡住求助
Laravel + Inertia.js(Vue)部署DigitalOcean时npm run build卡住的排查方案
可能原因
vue-tsc类型检查环节卡住:存在未解决的TypeScript类型错误,或tsconfig配置异常导致进程挂起- 服务器内存不足:DigitalOcean小内存Droplet(如1GB规格)在构建时内存耗尽,进程停滞
- 依赖版本不兼容:Vue、Vite、vue-tsc等核心依赖版本不匹配,触发构建流程异常
- 文件权限不足:构建时无法写入
dist或public目录,导致进程卡住
解决方法
1. 排查并修复TypeScript类型问题
直接单独执行类型检查命令,定位具体错误:
vue-tsc
- 若输出类型错误,逐一修复代码中的类型不匹配、未定义变量等问题
- 临时应急可修改
tsconfig.json,添加"skipLibCheck": true跳过第三方库类型检查,或暂时从build命令中移除vue-tsc &&(不推荐长期使用)
2. 缓解内存不足问题
先查看服务器内存状态:
free -h
- 内存不足时,优先升级Droplet内存规格
- 临时方案:添加swap分区补充内存
构建完成后可关闭swap:sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfilesudo swapoff /swapfile
3. 修复依赖版本冲突
- 核对
package.json中核心依赖版本:vue-tsc版本需与Vue版本匹配(Vue3.2+对应vue-tsc0.30+,Vue3.3+对应vue-tsc1.0+) - 清理现有依赖后重新安装:
rm -rf node_modules package-lock.json npm install
4. 修复文件权限问题
确保当前用户对项目目录有读写权限:
sudo chown -R $USER:$USER /path/to/your/project sudo chmod -R 755 /path/to/your/project/public
5. 分步执行构建命令定位问题
将build命令拆分为三步单独执行,确定卡住的具体环节:
vue-tscvite buildvite build --ssr
针对出错的环节做针对性修复
内容的提问来源于stack exchange,提问作者Ayman Tarig
相关产品推荐
相关产品推荐

