You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Astro升级至v5后构建进程冻结问题求助

Astro v5构建卡在“generating static paths”阶段的解决方案

问题概述

将Astro项目升级至v5版本后,开发模式可正常运行,但执行bunx --bun astro build构建命令时进程卡住,报错信息显示[commonjs--resolver] The service was stopped,关联文件为node_modules/astro/dist/assets/services/service.js。

解决步骤

1. 修复CommonJS依赖兼容性

Astro v5基于Vite 6,对CommonJS模块的处理规则更严格:

  • 在astro.config.mjs中添加Vite优化配置,指定需要转换的CommonJS依赖:
    export default defineConfig({
      vite: {
        optimizeDeps: {
          include: ['你的依赖包名'], // 替换为实际有问题的依赖
          esbuildOptions: {
            target: 'es2020'
          }
        }
      }
    });
    
  • 检查项目依赖,尝试将过时的CommonJS模块替换为ESM版本。

2. 清理缓存并重装依赖

缓存或损坏的依赖可能导致构建异常:

# 删除缓存与依赖文件
rm -rf node_modules dist bun.lockb
# 重新安装依赖
bun install

3. 调整Bun版本

当前使用的Bun 1.1.31可能与Astro v5存在兼容性问题,尝试降级到稳定版本:

bun upgrade --version 1.1.29

4. 排查静态路径生成逻辑

构建卡在“generating static paths”阶段,需检查页面中的getStaticPaths函数:

  • 确保异步请求有完整的错误捕获,避免未处理的Promise异常
  • 排查是否存在无限循环、递归调用或生成超量静态路径的情况
  • 验证数据源是否正常返回数据,排除数据获取失败导致的卡住

5. 临时调试:优先使用ESM模块

在astro.config.mjs中调整Vite配置,优先加载ESM模块以定位问题:

export default defineConfig({
  vite: {
    resolve: {
      conditions: ['module']
    }
  }
});

内容的提问来源于stack exchange,提问作者Asleepace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 07:47:19