Skip to content

Latest commit

 

History

History
153 lines (119 loc) · 4.61 KB

File metadata and controls

153 lines (119 loc) · 4.61 KB
type title description sidebar githubIntegrationURL category i18nReady
integration
@astrojs/svelte
Learn how to use the @astrojs/svelte framework integration to extend component support in your Astro project.
label
Svelte
renderer
true

import PackageManagerTabs from '/components/tabs/PackageManagerTabs.astro'; import Since from '/components/Since.astro';

This Astro integration enables rendering and client-side hydration for your Svelte 5 components. For Svelte 3 and 4 support, install @astrojs/svelte@5 instead.

Installation

Astro includes an astro add command to automate the setup of official integrations. If you prefer, you can install integrations manually instead.

To install @astrojs/svelte, run the following from your project directory and follow the prompts:

```sh npx astro add svelte ``` ```sh pnpm astro add svelte ``` ```sh yarn astro add svelte ```

If you run into any issues, feel free to report them to us on GitHub and try the manual installation steps below.

Manual Install

First, install the @astrojs/svelte package:

```sh npm install @astrojs/svelte ``` ```sh pnpm add @astrojs/svelte ``` ```sh yarn add @astrojs/svelte ```

Most package managers will install associated peer dependencies as well. If you see a Cannot find package 'svelte' (or similar) warning when you start up Astro, you'll need to install Svelte and TypeScript:

```sh npm install svelte typescript ``` ```sh pnpm add svelte typescript ``` ```sh yarn add svelte typescript ```

Then, apply the integration to your astro.config.* file using the integrations property:

import { defineConfig } from 'astro/config';
import svelte from '@astrojs/svelte';

export default defineConfig({
  // ...
  integrations: [svelte()],
});

And create a new file called svelte.config.js in your project root directory and add the following code:

import { vitePreprocess } from '@astrojs/svelte';

export default {
  preprocess: vitePreprocess(),
}

Getting started

To use your first Svelte component in Astro, head to our UI framework documentation. You'll explore:

  • 📦 how framework components are loaded,
  • 💧 client-side hydration options, and
  • 🤝 opportunities to mix and nest frameworks together

Options

This integration is powered by @sveltejs/vite-plugin-svelte. To customize the Svelte compiler, options can be provided to the integration. See the @sveltejs/vite-plugin-svelte docs for more details.

You can set options either by passing them to the svelte integration in astro.config.mjs or in svelte.config.js. The options in astro.config.mjs will take precedence over the options in svelte.config.js if both are present:

import { defineConfig } from 'astro/config';
import svelte from '@astrojs/svelte';

export default defineConfig({
  integrations: [svelte({ extensions: ['.svelte'] })],
});
export default {
  extensions: ['.svelte'],
};

Preprocessors

If you're using SCSS or Stylus in your Svelte files, you can create a svelte.config.js file so that they are preprocessed by Svelte, and the Svelte IDE extension can correctly parse the Svelte files.

import { vitePreprocess } from '@astrojs/svelte';

export default {
  preprocess: vitePreprocess(),
};

This config file will be automatically added for you when you run astro add svelte. See the @sveltejs/vite-plugin-svelte docs for more details about vitePreprocess.