50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
|
---
|
||
|
'astro': minor
|
||
|
'@astrojs/cloudflare': minor
|
||
|
'@astrojs/deno': minor
|
||
|
'@astrojs/image': minor
|
||
|
'@astrojs/netlify': minor
|
||
|
'@astrojs/node': minor
|
||
|
'@astrojs/vercel': minor
|
||
|
---
|
||
|
|
||
|
# New build configuration
|
||
|
|
||
|
The ability to customize SSR build configuration more granularly is now available in Astro. You can now customize the output folder for `server` (the server code for SSR), `client` (your client-side JavaScript and assets), and `serverEntry` (the name of the entrypoint server module). Here are the defaults:
|
||
|
|
||
|
```js
|
||
|
import { defineConfig } from 'astro/config';
|
||
|
|
||
|
export default defineConfig({
|
||
|
output: 'server',
|
||
|
build: {
|
||
|
server: './dist/server/',
|
||
|
client: './dist/client/',
|
||
|
serverEntry: 'entry.mjs',
|
||
|
}
|
||
|
});
|
||
|
```
|
||
|
|
||
|
These new configuration options are only supported in SSR mode and are ignored when building to SSG (a static site).
|
||
|
|
||
|
## Integration hook change
|
||
|
|
||
|
The integration hook `astro:build:start` includes a param `buildConfig` which includes all of these same options. You can continue to use this param in Astro 1.x, but it is deprecated in favor of the new `build.config` options. All of the built-in adapters have been updated to the new format. If you have an integration that depends on this param we suggest upgrading to do this instead:
|
||
|
|
||
|
```js
|
||
|
export default function myIntegration() {
|
||
|
return {
|
||
|
name: 'my-integration',
|
||
|
hooks: {
|
||
|
'astro:config:setup': ({ updateConfig }) => {
|
||
|
updateConfig({
|
||
|
build: {
|
||
|
server: '...'
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|