Svelte Storybook Troubleshoot
$ npx claude-code-templates@latest --command="svelte/svelte-storybook-troubleshoot" --yesRequires Claude Code. The command adds this command to your project's .claudedirectory — nothing runs on ToolZip's servers.
What's inside this command
Component source
/svelte:storybook-troubleshoot
Diagnose and fix common Storybook issues in SvelteKit projects, including build errors, module problems, and configuration issues.
Instructions
You are acting as the Svelte Storybook Specialist Agent focused on troubleshooting. When diagnosing issues:
- Common Build Errors:
"__esbuild_register_import_meta_url__ already declared":
- Remove svelteOptions from .storybook/main.js
- This is a v6 to v7 migration issue
- Ensure using @storybook/sveltekit framework
Module Resolution Errors:
// .storybook/main.js
export default {
framework: {
name: '@storybook/sveltekit',
options: {
builder: {
viteConfigPath: './vite.config.js'
}
}
},
viteFinal: async (config) => {
config.resolve.alias = {
...config.resolve.alias,
$lib: path.resolve('./src/lib'),
$app: path.resolve('./.storybook/mocks/app')
};
return config;
}
};
- SvelteKit Module Issues:
"Cannot find module '$app/stores'":
- These modules need mocking
- Use parameters.sveltekit_experimental
- Create mock files if needed:
// .storybook/mocks/app/stores.js
import { writable } from 'svelte/store';
export const page = writable({
url: new URL('http://localhost:6006'),
params: {},
route: { id: '/' },
data: {}
});
export const navigating = writable(null);
export const updated = writable(false);
- CSS and Styling Issues:
Global Styles Not Loading:
// .storybook/preview.js
import '../src/app.css';
import '../src/app.postcss';
import '../src/styles/global.css';
Tailwind Not Working:
// .storybook/main.js
export default {
addons: [
{
name: '@storybook/addon-postcss',
options: {
postcssLoaderOptions: {
implementation: require('postcss')
}
}
}
]
};
- Component Import Issues:
SSR Components:
// Mark stories as client-only if needed
export const Default = {
parameters: {
storyshots: { disable: true } // Skip for SSR-incompatible
}
};
Dynamic Imports:
// Use lazy loading for heavy components
const HeavyComponent = lazy(() => import('./HeavyComponent.svelte'));
- Environment Variables:
PUBLIC_ Variables Not Available:
// .storybook/main.js
export default {
env: (config) => ({
...config,
PUBLIC_API_URL: process.env.PUBLIC_API_URL || 'http://localhost:3000'
})
};
Create .env for Storybook:
# .env.storybook
PUBLIC_API_URL=http://localhost:3000
PUBLIC_FEATURE_FLAG=true
- Performance Issues:
Slow Build Times:
- Exclude large dependencies
- Use production builds
- Enable caching
export default {
features: {
buildStoriesJson: true,
storyStoreV7: true
},
core: {
disableTelemetry: true
}
};
- Addon Conflicts:
Version Mismatches:
# Check for version conflicts
npm ls @storybook/svelte
npm ls @storybook/sveltekit
# Update all Storybook packages
npx storybook@latest upgrade
- Testing Issues:
Play Functions Not Working:
// Ensure testing library is set up
import { within, userEvent, expect } from '@storybook/test';
Interaction Tests Failing:
- Check element selectors
- Add proper waits
- Use data-testid attributes
Debugging Checklist
- [ ] Check Storybook and SvelteKit versions
- [ ] Verify framework configuration
- [ ] Check for module mocking needs
- [ ] Validate Vite configuration
- [ ] Review addon compatibility
- [ ] Test in isolation mode
- [ ] Check browser console errors
- [ ] Review build output
Example Usage
User: "Storybook won't start, getting module errors"
Assistant will:
- Check error messages
- Identify missing module mocks
- Set up proper aliases
- Configure module mocking
- Fix import paths
- Test the solution
- Provide debugging steps
- Document the fix for team
Related Claude Code Commands
Svelte Debug
A ready-to-install Claude Code component.
Svelte Test Coverage
A ready-to-install Claude Code component.
Svelte Component
Create new Svelte components with best practices, TypeScript support, and testing
Svelte Optimize
A ready-to-install Claude Code component.
Svelte Test Setup
A ready-to-install Claude Code component.
Svelte Test
A ready-to-install Claude Code component.
Catalog data and component content are sourced from the open-source davila7/claude-code-templates project (MIT license). ToolZip curates the listing and writes original descriptions; every component links back to its original source. Claude Code is a product of Anthropic. ToolZip is an independent catalog and is not affiliated with or endorsed by Anthropic.