diff options
Diffstat (limited to 'packages/integrations')
24 files changed, 58 insertions, 52 deletions
diff --git a/packages/integrations/cloudflare/README.md b/packages/integrations/cloudflare/README.md index 3417149b8..d2c886df6 100644 --- a/packages/integrations/cloudflare/README.md +++ b/packages/integrations/cloudflare/README.md @@ -9,6 +9,7 @@ import { defineConfig } from 'astro/config'; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ + output: 'server', adapter: cloudflare() }); ``` diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts index dc65f23ce..7070af17f 100644 --- a/packages/integrations/cloudflare/src/index.ts +++ b/packages/integrations/cloudflare/src/index.ts @@ -21,6 +21,11 @@ export default function createIntegration(): AstroIntegration { 'astro:config:done': ({ setAdapter, config }) => { setAdapter(getAdapter()); _config = config; + + if(config.output === 'static') { + console.warn(`[@astrojs/cloudflare] \`output: "server"\` is required to use this adapter.`); + console.warn(`[@astrojs/cloudflare] Otherwise, this adapter is not required to deploy a static site to Cloudflare.`); + } }, 'astro:build:start': ({ buildConfig }) => { _buildConfig = buildConfig; diff --git a/packages/integrations/deno/README.md b/packages/integrations/deno/README.md index bc8dfe8f6..35fb27a62 100644 --- a/packages/integrations/deno/README.md +++ b/packages/integrations/deno/README.md @@ -37,6 +37,7 @@ import deno from '@astrojs/deno'; export default defineConfig({ // ... + output: 'server', adapter: deno() }); ``` @@ -69,6 +70,7 @@ import { defineConfig } from 'astro/config'; import deno from '@astrojs/deno'; export default defineConfig({ + output: 'server', adapter: deno({ //options go here }) @@ -85,6 +87,7 @@ export default defineConfig({ import deno from '@astrojs/deno'; export default defineConfig({ + output: 'server', adapter: deno({ start: false }) @@ -115,6 +118,7 @@ export default defineConfig({ import deno from '@astrojs/deno'; export default defineConfig({ + output: 'server', adapter: deno({ port: 8081, hostname: 'myhost' diff --git a/packages/integrations/deno/src/index.ts b/packages/integrations/deno/src/index.ts index 9a6df4f76..73ccf01e0 100644 --- a/packages/integrations/deno/src/index.ts +++ b/packages/integrations/deno/src/index.ts @@ -29,8 +29,13 @@ export default function createIntegration(args?: Options): AstroIntegration { return { name: '@astrojs/deno', hooks: { - 'astro:config:done': ({ setAdapter }) => { + 'astro:config:done': ({ setAdapter, config }) => { setAdapter(getAdapter(args)); + + if(config.output === 'static') { + console.warn(`[@astrojs/deno] \`output: "server"\` is required to use this adapter.`); + console.warn(`[@astrojs/deno] Otherwise, this adapter is not required to deploy a static site to Deno.`); + } }, 'astro:build:start': ({ buildConfig }) => { _buildConfig = buildConfig; diff --git a/packages/integrations/deno/test/fixtures/basics/astro.config.mjs b/packages/integrations/deno/test/fixtures/basics/astro.config.mjs index af5f1aa6b..d01a93632 100644 --- a/packages/integrations/deno/test/fixtures/basics/astro.config.mjs +++ b/packages/integrations/deno/test/fixtures/basics/astro.config.mjs @@ -5,7 +5,5 @@ import react from '@astrojs/react'; export default defineConfig({ adapter: deno(), integrations: [react()], - experimental: { - ssr: true - } + output: 'server', }) diff --git a/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs b/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs index e56fe2e98..d670faac6 100644 --- a/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs +++ b/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs @@ -3,7 +3,5 @@ import deno from '@astrojs/deno'; export default defineConfig({ adapter: deno(), - experimental: { - ssr: true - } + output: 'server', }) diff --git a/packages/integrations/image/src/integration.ts b/packages/integrations/image/src/integration.ts index afbeb00a9..725276d03 100644 --- a/packages/integrations/image/src/integration.ts +++ b/packages/integrations/image/src/integration.ts @@ -16,7 +16,7 @@ export default function integration(options: IntegrationOptions = {}): AstroInte const staticImages = new Map<string, Map<string, TransformOptions>>(); let _config: AstroConfig; - let mode: 'ssr' | 'ssg'; + let output: 'server' | 'static'; function getViteConfiguration() { return { @@ -37,11 +37,11 @@ export default function integration(options: IntegrationOptions = {}): AstroInte _config = config; // Always treat `astro dev` as SSR mode, even without an adapter - mode = command === 'dev' || config.adapter ? 'ssr' : 'ssg'; + output = command === 'dev' ? 'server' : config.output; updateConfig({ vite: getViteConfiguration() }); - if (mode === 'ssr') { + if (output === 'server') { injectRoute({ pattern: ROUTE_PATTERN, entryPoint: @@ -67,7 +67,7 @@ export default function integration(options: IntegrationOptions = {}): AstroInte // Helpers for building static images should only be available for SSG globalThis.astroImage = - mode === 'ssg' + output === 'static' ? { addStaticImage, filenameFormat, @@ -75,7 +75,7 @@ export default function integration(options: IntegrationOptions = {}): AstroInte : {}; }, 'astro:build:done': async ({ dir }) => { - if (mode === 'ssr') { + if (output === 'server') { // for SSR builds, copy all image files from src to dist // to make sure they are available for use in production await ssrBuild({ srcDir: _config.srcDir, outDir: dir }); diff --git a/packages/integrations/image/test/image-ssr.test.js b/packages/integrations/image/test/image-ssr.test.js index 0804f8068..37274c929 100644 --- a/packages/integrations/image/test/image-ssr.test.js +++ b/packages/integrations/image/test/image-ssr.test.js @@ -19,9 +19,7 @@ describe('SSR images - build', function () { fixture = await loadFixture({ root: './fixtures/basic-image/', adapter: testAdapter({ streaming: false }), - experimental: { - ssr: true, - }, + output: 'server', }); await fixture.build(); }); @@ -139,9 +137,7 @@ describe('SSR images - dev', function () { fixture = await loadFixture({ root: './fixtures/basic-image/', adapter: testAdapter(), - experimental: { - ssr: true, - }, + output: 'server', }); devServer = await fixture.startDevServer(); diff --git a/packages/integrations/image/test/picture-ssr.test.js b/packages/integrations/image/test/picture-ssr.test.js index 080cdbd2b..ebfbdf749 100644 --- a/packages/integrations/image/test/picture-ssr.test.js +++ b/packages/integrations/image/test/picture-ssr.test.js @@ -19,9 +19,7 @@ describe('SSR pictures - build', function () { fixture = await loadFixture({ root: './fixtures/basic-picture/', adapter: testAdapter(), - experimental: { - ssr: true, - }, + output: 'server', }); await fixture.build(); }); @@ -187,9 +185,7 @@ describe('SSR images - dev', function () { fixture = await loadFixture({ root: './fixtures/basic-picture/', adapter: testAdapter(), - experimental: { - ssr: true, - }, + output: 'server', }); devServer = await fixture.startDevServer(); diff --git a/packages/integrations/netlify/README.md b/packages/integrations/netlify/README.md index 5f6b61fa2..0dc6f3db8 100644 --- a/packages/integrations/netlify/README.md +++ b/packages/integrations/netlify/README.md @@ -37,6 +37,7 @@ import { defineConfig } from 'astro/config'; import netlify from '@astrojs/netlify/functions'; export default defineConfig({ + output: 'server', adapter: netlify(), }); ``` @@ -51,6 +52,7 @@ import { defineConfig } from 'astro/config'; + import netlify from '@astrojs/netlify/edge-functions'; export default defineConfig({ + output: 'server', adapter: netlify(), }); ``` @@ -83,6 +85,7 @@ import { defineConfig } from 'astro/config'; import netlify from '@astrojs/netlify/functions'; export default defineConfig({ + output: 'server', adapter: netlify({ dist: new URL('./dist/', import.meta.url) }) diff --git a/packages/integrations/netlify/src/integration-edge-functions.ts b/packages/integrations/netlify/src/integration-edge-functions.ts index b3f27997d..0556317d7 100644 --- a/packages/integrations/netlify/src/integration-edge-functions.ts +++ b/packages/integrations/netlify/src/integration-edge-functions.ts @@ -135,6 +135,11 @@ export function netlifyEdgeFunctions({ dist }: NetlifyEdgeFunctionsOptions = {}) 'astro:config:done': ({ config, setAdapter }) => { setAdapter(getAdapter()); _config = config; + + if(config.output === 'static') { + console.warn(`[@astrojs/netlify] \`output: "server"\` is required to use this adapter.`); + console.warn(`[@astrojs/netlify] Otherwise, this adapter is not required to deploy a static site to Netlify.`); + } }, 'astro:build:start': async ({ buildConfig }) => { _buildConfig = buildConfig; diff --git a/packages/integrations/netlify/src/integration-functions.ts b/packages/integrations/netlify/src/integration-functions.ts index e9b4aae33..d0b327f87 100644 --- a/packages/integrations/netlify/src/integration-functions.ts +++ b/packages/integrations/netlify/src/integration-functions.ts @@ -35,6 +35,11 @@ function netlifyFunctions({ 'astro:config:done': ({ config, setAdapter }) => { setAdapter(getAdapter({ binaryMediaTypes })); _config = config; + + if(config.output === 'static') { + console.warn(`[@astrojs/netlify] \`output: "server"\` is required to use this adapter.`); + console.warn(`[@astrojs/netlify] Otherwise, this adapter is not required to deploy a static site to Netlify.`); + } }, 'astro:build:start': async ({ buildConfig }) => { entryFile = buildConfig.serverEntry.replace(/\.m?js/, ''); diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs index c55135e43..cd758352b 100644 --- a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs +++ b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs @@ -5,7 +5,5 @@ export default defineConfig({ adapter: netlifyEdgeFunctions({ dist: new URL('./dist/', import.meta.url), }), - experimental: { - ssr: true - } + output: 'server', }) diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs index d7c899264..a08e8e89d 100644 --- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs @@ -7,7 +7,5 @@ export default defineConfig({ dist: new URL('./dist/', import.meta.url), }), integrations: [react()], - experimental: { - ssr: true - } + output: 'server', }) diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs index c55135e43..cd758352b 100644 --- a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs +++ b/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs @@ -5,7 +5,5 @@ export default defineConfig({ adapter: netlifyEdgeFunctions({ dist: new URL('./dist/', import.meta.url), }), - experimental: { - ssr: true - } + output: 'server', }) diff --git a/packages/integrations/netlify/test/functions/base64-response.test.js b/packages/integrations/netlify/test/functions/base64-response.test.js index 064cff154..6e59bd192 100644 --- a/packages/integrations/netlify/test/functions/base64-response.test.js +++ b/packages/integrations/netlify/test/functions/base64-response.test.js @@ -9,9 +9,7 @@ describe('Base64 Responses', () => { before(async () => { fixture = await loadFixture({ root: new URL('./fixtures/base64-response/', import.meta.url).toString(), - experimental: { - ssr: true, - }, + output: 'server', adapter: netlifyAdapter({ dist: new URL('./fixtures/base64-response/dist/', import.meta.url), binaryMediaTypes: ['font/otf'], diff --git a/packages/integrations/netlify/test/functions/cookies.test.js b/packages/integrations/netlify/test/functions/cookies.test.js index e9121b429..bc1771512 100644 --- a/packages/integrations/netlify/test/functions/cookies.test.js +++ b/packages/integrations/netlify/test/functions/cookies.test.js @@ -11,9 +11,7 @@ describe('Cookies', () => { before(async () => { fixture = await loadFixture({ root: new URL('./fixtures/cookies/', import.meta.url).toString(), - experimental: { - ssr: true, - }, + output: 'server', adapter: netlifyAdapter({ dist: new URL('./fixtures/cookies/dist/', import.meta.url), }), diff --git a/packages/integrations/netlify/test/functions/dynamic-route.test.js b/packages/integrations/netlify/test/functions/dynamic-route.test.js index 8c8977f7e..0cfb5359b 100644 --- a/packages/integrations/netlify/test/functions/dynamic-route.test.js +++ b/packages/integrations/netlify/test/functions/dynamic-route.test.js @@ -9,9 +9,7 @@ describe('Dynamic pages', () => { before(async () => { fixture = await loadFixture({ root: new URL('./fixtures/dynamic-route/', import.meta.url).toString(), - experimental: { - ssr: true, - }, + output: 'server', adapter: netlifyAdapter({ dist: new URL('./fixtures/dynamic-route/dist/', import.meta.url), }), diff --git a/packages/integrations/node/README.md b/packages/integrations/node/README.md index 3772a23d8..274352577 100644 --- a/packages/integrations/node/README.md +++ b/packages/integrations/node/README.md @@ -37,6 +37,7 @@ import node from '@astrojs/node'; export default defineConfig({ // ... + output: 'server', adapter: node() }) ``` diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts index b90cd9d2e..8ff6fc423 100644 --- a/packages/integrations/node/src/index.ts +++ b/packages/integrations/node/src/index.ts @@ -12,8 +12,12 @@ export default function createIntegration(): AstroIntegration { return { name: '@astrojs/node', hooks: { - 'astro:config:done': ({ setAdapter }) => { + 'astro:config:done': ({ setAdapter, config }) => { setAdapter(getAdapter()); + + if(config.output === 'static') { + console.warn(`[@astrojs/Node] \`output: "server"\` is required to use this adapter.`); + } }, }, }; diff --git a/packages/integrations/node/test/api-route.test.js b/packages/integrations/node/test/api-route.test.js index a28b88e7f..034b53c07 100644 --- a/packages/integrations/node/test/api-route.test.js +++ b/packages/integrations/node/test/api-route.test.js @@ -9,9 +9,7 @@ describe('API routes', () => { before(async () => { fixture = await loadFixture({ root: './fixtures/api-route/', - experimental: { - ssr: true, - }, + output: 'server', adapter: nodejs(), }); await fixture.build(); diff --git a/packages/integrations/sitemap/src/index.ts b/packages/integrations/sitemap/src/index.ts index a1c9650f2..bab3d5af6 100644 --- a/packages/integrations/sitemap/src/index.ts +++ b/packages/integrations/sitemap/src/index.ts @@ -98,9 +98,9 @@ const createPlugin = (options?: SitemapOptions): AstroIntegration => { if (pageUrls.length === 0) { // offer suggestion for SSR users - if (typeof config.adapter !== 'undefined') { + if (config.output !== 'static') { logger.warn( - `No pages found! We can only detect sitemap routes for "static" projects. Since you are using an SSR adapter, we recommend manually listing your sitemap routes using the "customPages" integration option.\n\nExample: \`sitemap({ customPages: ['https://example.com/route'] })\`` + `No pages found! We can only detect sitemap routes for "static" builds. Since you are using an SSR adapter, we recommend manually listing your sitemap routes using the "customPages" integration option.\n\nExample: \`sitemap({ customPages: ['https://example.com/route'] })\`` ); } else { logger.warn(`No pages found!\n\`${OUTFILE}\` not created.`); diff --git a/packages/integrations/vercel/README.md b/packages/integrations/vercel/README.md index aaab5eb40..f7726805b 100644 --- a/packages/integrations/vercel/README.md +++ b/packages/integrations/vercel/README.md @@ -25,7 +25,7 @@ First, install the `@astrojs/vercel` package using your package manager. If you' npm install @astrojs/vercel ``` -Then, install this adapter in your `astro.config.*` file using the `adapter` property (note the import from `@astrojs/vercel/serverless` - see [targets](#targets)). +Then, install this adapter in your `astro.config.*` file using the `deploy` property (note the import from `@astrojs/vercel/serverless` - see [targets](#targets)). __`astro.config.mjs`__ @@ -34,6 +34,7 @@ import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel/serverless'; export default defineConfig({ + output: 'server', adapter: vercel() }); ``` diff --git a/packages/integrations/vercel/src/static/adapter.ts b/packages/integrations/vercel/src/static/adapter.ts index db6690f8c..abc9483f5 100644 --- a/packages/integrations/vercel/src/static/adapter.ts +++ b/packages/integrations/vercel/src/static/adapter.ts @@ -23,9 +23,7 @@ export default function vercelStatic(): AstroIntegration { setAdapter(getAdapter()); _config = config; }, - 'astro:build:start': async ({ buildConfig }) => { - buildConfig.staticMode = true; - + 'astro:build:start': async () => { // Ensure to have `.vercel/output` empty. // This is because, when building to static, outDir = .vercel/output/static/, // so .vercel/output itself won't get cleaned. |