Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More β†’
Socket
Sign inDemoInstall
Socket

@storybook/sveltekit

Package Overview
Dependencies
Maintainers
29
Versions
850
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@storybook/sveltekit

Storybook for SvelteKit

  • 7.0.0-beta.23
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
36K
increased by10.44%
Maintainers
29
Weekly downloads
Β 
Created
Source

Storybook for SvelteKit

Our goal is to help you use the tools you love together with Storybook. That’s why Storybook has zero-config support for SvelteKit with the @storybook/sveltekit package.

Check out our Frameworks API announcement for what this all means for you and our continued efforts to make Storybook a seamless integration for any project.

Table of Contents

Supported features

All Svelte language features are supported out of the box, as Storybook uses the Svelte compiler underneath. However SvelteKit has some Kit-specific modules that currently aren't supported. It's on our roadmap to support most of them soon:

ModuleStatus
$app/environmentπŸ”œ Coming in 7.0
$app/forms⏳ Planned for 7.1
$app/navigation⏳ Planned for 7.1. With mocks so the Actions addon will display when the hooks are being called.
$app/paths⏳ Planned for 7.1
$app/storesπŸ”œ Coming in 7.0. Mocks are planned for 7.1 so you can set different store values per story.
$env/dynamic/privateβ›” Not supported. They are meant to only be available server-side, and Storybook renders all components on the client.
$env/dynamic/publicπŸ”œ Coming in 7.0
$env/static/privateβ›” Not supported. They are meant to only be available server-side, and Storybook renders all components on the client.
$env/static/publicπŸ”œ Coming in 7.0
$libπŸ”œ Coming in 7.0
$service-workerβ›” Not supported. They are only meant to be used in service workers
@sveltejs/kit/*βœ… Supported

This is just the beginning. We're close to adding basic support for many of the SvelteKit features. Longer term we're planning on making it an even better experience to build, test and document all the SvelteKit goodies like pages, forms and layouts in Storybook, while still integrating with all the addons and workflows you know and love.

Requirements

Getting Started

In a project without Storybook

Run the following command in your SvelteKit project's root directory, and follow the prompts:

npx storybook@next init

More on getting started with Storybook

In a project with Storybook

This framework is designed to work with Storybook 7. If you’re not already using v7, upgrade with this command:

npx storybook@next upgrade --prerelease
Automatic migration

When running the upgrade command above you should get a prompt asking you to migrate to @storybook/sveltekit, which should handle everything for you. In some cases it can't migrate for you, eg. if your existing Storybook setup is based on Webpack. In such cases, refer to the manual migration below.

Storybook 7.0 automatically loads your Vite config, and by extension your Svelte config. If you had a svelteOptions property in .storybook/main.cjs the automigration will have removed it, as it is no longer supported.

Manual migration

Install the framework:

yarn add -D @storybook/sveltekit@next

Update your main.cjs to change the framework property:

// .storybook/main.cjs
module.exports = {
  ...
  framework: '@storybook/sveltekit',
};

Storybook 7.0 automatically loads your Vite config, and by extension your Svelte config. If you have a svelteOptions property in .storybook/main.cjs you need to remove that. See Troubleshooting below.

Remove any redundant dependencies, if you have them:

yarn remove @storybook/svelte-vite
yarn remove @storybook/svelte-webpack5
yarn remove storybook-builder-vite
yarn remove @storybook/builder-vite

Troubleshooting

Error: ERR! SyntaxError: Identifier '__esbuild_register_import_meta_url__' has already been declared when starting Storybook

When starting Storybook after upgrading to v7.0, it breaks with the following error:

ERR! SyntaxError: Identifier '__esbuild_register_import_meta_url__' has already been declared

You'll get this error when manually upgrading from 6.5 to 7.0. You need to remove the svelteOptions property in .storybook/main.cjs, as that is not supported by Storybook 7.0 + SvelteKit. The property is also not necessary anymore because the Vite and Svelte configurations are loaded automatically in Storybook 7.0.

Acknowledgements

Integrating with SvelteKit would not have been possible if it weren't for the fantastic efforts by the Svelte core team - especially Ben McCann - to make integrations with the wider ecosystem possible.

Keywords

FAQs

Package last updated on 10 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚑️ by Socket Inc