diff --git a/astro.config.mjs b/astro.config.mjs index 0a44678..b271412 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,17 +1,26 @@ -// @ts-check -import { defineConfig } from 'astro/config'; +// astro.config.mjs +import { defineConfig } from 'astro/config' +import react from '@astrojs/react' +import markdoc from '@astrojs/markdoc' -import react from '@astrojs/react'; -import markdoc from '@astrojs/markdoc'; -import keystatic from '@keystatic/astro' +// Only import keystatic and node in development +let keystatic, node -import node from '@astrojs/node'; +if (process.env.NODE_ENV !== 'production') { + keystatic = (await import('@keystatic/astro')).default + node = (await import('@astrojs/node')).default +} -// https://astro.build/config -export default defineConfig({ - integrations: [react(), markdoc(), keystatic()], +const isProduction = process.env.NODE_ENV === 'production' - adapter: node({ - mode: 'standalone', - }), -}); \ No newline at end of file +const config = { + output: isProduction ? 'static' : 'server', + integrations: [react(), markdoc()] +} + +if (!isProduction) { + config.adapter = node({ mode: 'standalone' }) + config.integrations.push(keystatic()) +} + +export default defineConfig(config) \ No newline at end of file diff --git a/package.json b/package.json index 5849c44..89e7d25 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "0.0.1", "scripts": { "dev": "astro dev", - "build": "astro build", + "build": "NODE_ENV=production astro build", "preview": "astro preview", "astro": "astro", "lint": "eslint . --ext .js,.ts,.astro",