Build Process
Astro generates static HTML files at build time, creating a fast, optimized site ready for deployment.Build Command
Run the build from the project root:astro build command defined in package.json:
package.json
Build Output
The build process generates static files in the./dist/ directory:
The
dist/ directory is created from scratch on each build. Never edit files in dist/ directly - they will be overwritten.Build Steps
The build process includes:Preview Build Locally
Test the production build on your local machine:./dist/ directory:
Build Configuration
Customize the build inastro.config.mjs:
astro.config.mjs
Output Formats
Directory format (default):Production Optimizations
Astro automatically optimizes your build:JavaScript
- Minification
- Tree shaking (removes unused code)
- Code splitting
- Hash-based filenames for caching
CSS
- Minification
- Critical CSS inlining
- Unused CSS removal
- Hash-based filenames
HTML
- Minification
- Static HTML generation
- Pre-rendered content
Images
- Automatic optimization (with
@astrojs/image) - Responsive image generation
- Format conversion (WebP, AVIF)
Build Size Analysis
Check the build output summary:CI/CD Build
The GitHub Actions workflow builds automatically on push:.github/workflows/deploy.yml
npm ci is used in CI/CD instead of npm install for faster, more reliable builds based on package-lock.json.Troubleshooting
Build fails with content errors
Build fails with content errors
Issue: Content collection validation errorsSolution: Check frontmatter in markdown files:Fix any missing or invalid fields in
src/content/work/*.mdMissing images in build
Missing images in build
Issue: Images not appearing in productionSolution: Ensure images are in
public/assets/ and frontmatter uses correct paths:Build is slow
Build is slow
Issue: Long build timesSolution:
- Clear cache:
rm -rf dist node_modules/.astro - Update dependencies:
npm update - Optimize large images before adding to
public/
Out of memory error
Out of memory error
Issue:
JavaScript heap out of memorySolution: Increase Node.js memory:package.json
Build Checklist
Before deploying, verify:Content validated
All projects have valid frontmatter
Build succeeds
Production build completes without errors
Preview works
Local preview shows correct content
Site URL correct
site in astro.config.mjs matches deployment URLNext Steps
- GitHub Pages - Deploy your built site
- Configuration - Customize build options
- Adding Projects - Add content to build