Files
BroadcastChannel/astro.config.mjs
ccbikai 4dbe36fa77 feat: add EdgeOne adapter support
Integrates EdgeOne as a deployment adapter alongside existing providers like Cloudflare, Netlify, Node, and Vercel.

Enables deployment to EdgeOne platform by adding the adapter package and configuration, expanding the available deployment options for the project.
2025-12-13 16:33:34 +08:00

92 lines
2.4 KiB
JavaScript

import process from 'node:process'
import cloudflare from '@astrojs/cloudflare'
import netlify from '@astrojs/netlify'
import node from '@astrojs/node'
import vercel from '@astrojs/vercel'
import edgeone from '@edgeone/astro'
import sentry from '@sentry/astro'
import { defineConfig } from 'astro/config'
import { provider } from 'std-env'
const providers = {
vercel: vercel({
isr: false,
edgeMiddleware: false,
}),
cloudflare_pages: cloudflare(),
netlify: netlify({
cacheOnDemandPages: false,
edgeMiddleware: false,
}),
node: node({
mode: 'standalone',
}),
edgeone: edgeone(),
}
const adapterProvider = process.env.SERVER_ADAPTER || provider
// https://astro.build/config
export default defineConfig({
output: 'server',
adapter: providers[adapterProvider] || providers.node,
integrations: [
...(process.env.SENTRY_DSN
? [
sentry({
enabled: {
client: false,
server: process.env.SENTRY_DSN,
},
dsn: process.env.SENTRY_DSN,
sourceMapsUploadOptions: {
enabled: process.env.SENTRY_PROJECT && process.env.SENTRY_AUTH_TOKEN,
project: process.env.SENTRY_PROJECT,
authToken: process.env.SENTRY_AUTH_TOKEN,
},
}),
]
: []),
],
vite: {
ssr: {
noExternal: process.env.DOCKER ? !!process.env.DOCKER : undefined,
external: [
...adapterProvider === 'cloudflare_pages'
? [
'module',
'url',
'events',
'worker_threads',
'async_hooks',
'util',
'node:diagnostics_channel',
'node:net',
'node:tls',
'node:worker_threads',
'node:util',
'node:fs',
'node:path',
'node:process',
'node:buffer',
'node:string_decoder',
'node:readline',
'node:events',
'node:stream',
'node:assert',
'node:os',
'node:crypto',
'node:zlib',
'node:http',
'node:https',
'node:url',
'node:querystring',
'node:child_process',
'node:inspector',
]
: [],
],
},
},
})