Astro 4 月 18 日更新:构建和部署体验优化

Astro 在 4 月 18 日发布了多个补丁更新,主要聚焦于构建稳定性开发体验优化。让我们来看看具体改了什么。

修复特殊字符导致的部署失败

问题回顾

之前如果你的 Astro 项目构建输出的文件名包含特殊字符(如 !~{}),在部署到 Netlify 等平台时会直接失败。这个问题在静态站点生成(SSG)场景下尤为棘手。

修复内容

现在 Astro 会自动处理这些特殊字符,确保构建输出的文件名在任何部署平台上都能正常工作。

原 PR: #16367 - Fixes build output files with special characters

这个修复对于使用动态路由生成页面的开发者来说是个好消息,终于不用手动清理文件名了。

Vue Scoped Style 改进

问题回顾

在使用 Vue 组件时,scoped style 在开发模式下配合客户端路由(client-side router)导航时会出现样式丢失的问题。

修复内容

现在 Vue 的 scoped style 在开发模式下可以正确保持,不会因为页面导航而丢失样式。

原 PR: #16379 - Improves Vue scoped style handling in DEV mode during client router navigation

这对使用 Astro 的 Vue 集成开发者来说是个重要修复,特别是单页应用场景。

开发服务器性能优化

改进内容

Astro 开发服务器现在会缓存项目的依赖爬取结果,提升了内部处理效率。这意味着:

  • 首次启动后,后续的文件变更响应更快
  • 复杂项目的开发体验更流畅

原 PR: #16381 - Improved performance of the dev server

修复 Netlify/Vercel 构建错误

问题场景

在使用动态 import 的 JavaScript 跨 chunk 时,如果平台启用了 skew protection(如 Vercel、Netlify),构建会报错。

修复内容

这个问题现在已经修复,构建产物可以在这些平台正常部署。

原 PR: #16282 - Fixes build errors on platforms with skew protection enabled

其他修复

  • 远程图片尺寸验证:在 Netlify 静态构建时,现在会正确验证远程图片的尺寸
  • —port 标志:修复了 Vite 触发服务器重启后 —port 参数被忽略的问题
  • 静态资源错误响应:修复了静态资源错误响应错误包含 immutable 缓存头的问题
  • Cloudflare 图像转换:使用 redirect: 'manual' 处理远程图像获取,保持一致

我的感受

这次更新虽然都是补丁,但都很实用:

  1. 特殊字符修复 - 解决了部署时的”玄学”问题
  2. Vue 改进 - 对使用 Vue 的开发者很友好
  3. 性能优化 - 开发体验更流畅

建议所有 Astro 用户更新到最新版本,特别是如果你在 Netlify 或 Vercel 上部署。


参考链接


← Back to blog