diff options
Diffstat (limited to 'packages/integrations/netlify/README.md')
-rw-r--r-- | packages/integrations/netlify/README.md | 94 |
1 files changed, 78 insertions, 16 deletions
diff --git a/packages/integrations/netlify/README.md b/packages/integrations/netlify/README.md index dba81568e..a669227af 100644 --- a/packages/integrations/netlify/README.md +++ b/packages/integrations/netlify/README.md @@ -1,8 +1,36 @@ # @astrojs/netlify -Deploy your server-side rendered (SSR) Astro app to [Netlify](https://www.netlify.com/). +This adapter allows Astro to deploy your SSR site to [Netlify](https://www.netlify.com/). -Use this adapter in your Astro configuration file, alongside a valid deployment URL: +- <strong>[Why Astro Netlify](#why-astro-netlify)</strong> +- <strong>[Installation](#installation)</strong> +- <strong>[Usage](#usage)</strong> +- <strong>[Configuration](#configuration)</strong> +- <strong>[Examples](#examples)</strong> +- <strong>[Troubleshooting](#troubleshooting)</strong> +- <strong>[Contributing](#contributing)</strong> +- <strong>[Changelog](#changelog)</strong> + + +## Why Astro Netlify + +If you're using Astro as a static site builder—its behavior out of the box—you don't need an adapter. + +If you wish to [use server-side rendering (SSR)](https://docs.astro.build/en/guides/server-side-rendering/), Astro requires an adapter that matches your deployment runtime. + +[Netlify](https://www.netlify.com/) is a deployment platform that allows you to host your site by connecting directly to your GitHub repository. This adapter enhances the Astro build process to prepare your project for deployment through Netlify. + + +## Installation + +First, install the `@astrojs/netlify` package using your package manager. If you're using npm or aren't sure, run this in the terminal: +```sh +npm install @astrojs/netlify +``` + +Then, install this adapter in your `astro.config.*` file using the `adapter` property. Note: there are two different adapters, one for Netlify Functions and one for Edge Functions. See [Edge Functions](#edge-functions) below on importing the latter. + +__astro.config.mjs__ ```js import { defineConfig } from 'astro/config'; @@ -13,15 +41,7 @@ export default defineConfig({ }); ``` -After you build your site the `netlify/` folder will contain [Netlify Functions](https://docs.netlify.com/functions/overview/) in the `netlify/functions/` folder. - -Now you can deploy! - -```shell -netlify deploy --build -``` - -## Edge Functions +### Edge Functions Netlify has two serverless platforms, Netlify Functions and Netlify Edge Functions. With Edge Functions your code is distributed closer to your users, lowering latency. You can use Edge Functions by changing the import in your astro configuration file: @@ -34,12 +54,31 @@ export default defineConfig({ adapter: netlify(), }); ``` +## Usage + +[Read the full deployment guide here.](https://docs.astro.build/en/guides/deploy/vercel) + +After [performing a build](https://docs.astro.build/en/guides/deploy/#building-the-app) the `netlify/` folder will contain [Netlify Functions](https://docs.netlify.com/functions/overview/) in the `netlify/functions/` folder. + +Now you can deploy. Install the [Netlify CLI](https://docs.netlify.com/cli/get-started/) and run: + +```shell +netlify deploy --build +``` + +The [Netlify Blog post on Astro](https://www.netlify.com/blog/how-to-deploy-astro/) and the [Netlify Documentation](https://docs.netlify.com/integrations/frameworks/astro/) provide more information on how to use this integration to deploy to Netlify. + ## Configuration -### dist +To configure this adapter, pass an object to the `netlify()` function call in `astro.config.mjs` - there's only one possible configuration option: -We build to a `dist` directory at the base of your project. To change this, use the `dist` option: +<details> + <summary><strong>dist</strong></summary> + + <br/> + +We build to the `dist` directory at the base of your project. To change this, use the `dist` option: ```js import { defineConfig } from 'astro/config'; @@ -56,14 +95,19 @@ And then point to the dist in your `netlify.toml`: ```toml [functions] - directory = "dist/functions" +directory = "dist/functions" ``` -### binaryMediaTypes +</details> + +<details> + <summary> + <strong>binaryMediaTypes</strong> + </summary> > This option is only needed for the Functions adapter and is not needed for Edge Functions. -Netlify Functions sending binary data in the `body` need to be base64 encoded. The `@astrojs/netlify/functions` adapter handles this automatically based on the `Content-Type` header. +Netlify Functions requires binary data in the `body` to be base64 encoded. The `@astrojs/netlify/functions` adapter handles this automatically based on the `Content-Type` header. We check for common mime types for audio, image, and video files. To include specific mime types that should be treated as binary data, include the `binaryMediaTypes` option with a list of binary mime types. @@ -82,3 +126,21 @@ export function get() { }); } ``` +</details> + +## Examples + +- The [Astro Netlify Edge Starter](https://github.com/sarahetter/astro-netlify-edge-starter) provides an example and a guide in the README. + +- [Browse Astro Netlify projects on GitHub](https://github.com/search?q=%22%40astrojs%2Fnetlify%22+filename%3Apackage.json&type=Code) for more examples! + +## Troubleshooting + +## Contributing + +This package is maintained by Astro's Core team. You're welcome to submit an issue or PR! + +## Changelog + +[astro-integration]: https://docs.astro.build/en/guides/integrations-guide/ + |