58c4cb12a8
- ship libvips with the runtime image so POST /api/v1/media stops failing - admin downloads openapi.json and the style guide via session, no token - copy rows for both API addresses - anchor mark in the wordmark and a favicon
39 lines
975 B
TypeScript
39 lines
975 B
TypeScript
import type { NextConfig } from 'next'
|
|
import createNextIntlPlugin from 'next-intl/plugin'
|
|
|
|
const sharpNative = [
|
|
'./node_modules/.pnpm/@img+sharp-libvips-*/**',
|
|
'./node_modules/.pnpm/@img+sharp-linux*/**',
|
|
'./node_modules/@img/**',
|
|
]
|
|
|
|
const config: NextConfig = {
|
|
output: 'standalone',
|
|
outputFileTracingIncludes: {
|
|
'/api/v1/style-guide': ['./docs/style-guide.md'],
|
|
'/': ['./node_modules/drizzle-orm/**'],
|
|
'/api/v1/media': sharpNative,
|
|
'/admin/media': sharpNative,
|
|
'/admin/media/[slug]': sharpNative,
|
|
'/admin/entries/[id]': sharpNative,
|
|
'/admin/entries/new': sharpNative,
|
|
},
|
|
typedRoutes: true,
|
|
experimental: {
|
|
useTypeScriptCli: true,
|
|
serverActions: {
|
|
bodySizeLimit: '16mb',
|
|
},
|
|
},
|
|
images: {
|
|
formats: ['image/webp'],
|
|
deviceSizes: [480, 640, 960, 1200, 1600, 1920],
|
|
imageSizes: [96, 160, 240, 320],
|
|
minimumCacheTTL: 31536000,
|
|
},
|
|
}
|
|
|
|
const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts')
|
|
|
|
export default withNextIntl(config)
|