Step 4: Build for Production
Prerequisites
- Completed Step 3
Commands
Enable minification by editing src/site.json:
"build": { "minify": true, "debug": false }Set identity.url to your production domain:
"identity": { "url": "https://yourdomain.com" }Run the production build:
npm run buildInspect the output:
find dist -maxdepth 2 -type f | sortExpected Output
- Fresh static files under
dist/. - HTML is minified when
build.minifyistrue. - CSS bundle:
dist/output.css?v=7e5120dfbaf9(Tailwind plugin, also minified). - JS bundle:
dist/output.js?v=7e5120dfbaf9(esbuild plugin, minified with sourcemap). - SEO files:
dist/robots.txt,dist/sitemap.xml,dist/feed.xml.
What Just Happened
The build lifecycle executed in this order:
ensureDist()- clears and recreatesdist/.dist:cleanhook - robots.txt generated.- Static assets copied from
src/assets/. assets:copyhook - Tailwind CSS and esbuild run.- Markdown content loaded from
src/content/. content:loadhook - external content injection point.- Collections built (tags, categories, series).
content:readyhook - RSS and sitemap generated.- Pages rendered and written to
dist/.
Common Errors
| Error | Fix |
|---|---|
Missing output.css or output.js | Verify src/css/app.css and src/js/app.js exist and plugins are listed |
| Wrong language/path in output | Check content.languages and canonical settings |
| Old files persist in output | Build clears dist/ automatically; if issues persist, delete dist/ manually |