Detect runtime environment with boolean flags for browser, dev mode, building, and app version.
// From '$app/environment'
const browser: boolean;
const dev: boolean;
const building: boolean;
const version: string;Usage:
import { browser, dev, building, version } from '$app/environment';
// Browser-only code
if (browser) {
localStorage.setItem('key', 'value');
window.addEventListener('resize', handleResize);
}
// Dev-only logging
if (dev) {
console.log('Debug info:', data);
}
// Skip expensive operations during build
if (!building) {
await connectToDatabase();
}
// Display version
console.log('App version:', version);Conditional Execution:
<script>
import { browser, dev } from '$app/environment';
// Only runs in browser
$: if (browser) {
document.title = pageTitle;
}
// Dev-only features
{#if dev}
<DebugPanel />
{/if}
</script>browser: true in browser, false during SSRdev: true when running dev server (npm run dev)building: true during vite build and prerenderingversion: String from config.kit.version.name (empty string if not set)browser to gate browser-only APIs (localStorage, window, document)dev for development-only features and loggingbuilding to skip operations during build (database connections, etc.)