svelte-storybook-troubleshoot — команда для Claude Code: чинит
Слэш-команда разбирает типовые поломки Storybook в проектах на SvelteKit: ошибки сборки, неразрешённые модули, конфликты аддонов.
npx claude-code-templates@latest --command svelte/svelte-storybook-troubleshootЧто делает svelte-storybook-troubleshoot
Команда подключает агента-специалиста по Storybook и SvelteKit. Он идёт по списку известных сбоев: ошибка __esbuild_register_import_meta_url__ already declared после перехода с v6 на v7, неразрешённые импорты $lib и $app, глобальные стили, которые не подхватываются в preview.js, переменные PUBLIC_ в окружении Storybook.
Для модулей SvelteKit агент настраивает алиасы в viteFinal и заводит моки вроде .storybook/mocks/app/stores.js с writable-хранилищами page, navigating, updated. Отдельно разбираются конфликты версий аддонов: команда предлагает проверить дерево зависимостей через npm ls @storybook/svelte и обновить пакеты. Если у вас в проекте нестандартный путь к vite.config.js, его придётся прописать в опциях фреймворка самому — иначе алиасы не подхватятся.
Есть чек-лист отладки: версии, конфигурация фреймворка, необходимость моков, Vite, совместимость аддонов, изоляция, консоль браузера, вывод сборки. По ходу разбора агент фиксирует найденное решение, чтобы команда могла им воспользоваться.
Какие задачи решает
- убрать ошибку
__esbuild_register_import_meta_url__ already declaredпосле миграции Storybook - настроить алиасы для
$libи$appв конфиге Storybook - замокать
$app/storesдля историй, которые не тянут реальный роутер - подключить глобальные CSS и Tailwind в
preview.js - разобраться с конфликтом версий пакетов
@storybook/svelteи@storybook/sveltekit
Примеры запросов агенту
- Storybook не запускается, сыплет ошибками модулей — разберись
- Почему в Storybook не видны переменные PUBLIC_API_URL?
- Проверь конфиг Storybook в моём SvelteKit-проекте и почини сборку
Как установить svelte-storybook-troubleshoot
1Через claude-code-templates
npx claude-code-templates@latest --command svelte/svelte-storybook-troubleshoot2Вручную: положить файлы
.claude/commands/svelte-storybook-troubleshoot.mdВызов — /svelte-storybook-troubleshoot. Для всех проектов — ~/.claude/commands/
Вручную: положить файлы
~/.codex/prompts/svelte-storybook-troubleshoot.mdВызов — /prompts:svelte-storybook-troubleshoot. В Codex этот формат помечен устаревшим, замена — скиллы
Вручную: положить файлы
.github/prompts/svelte-storybook-troubleshoot.prompt.mdВручную: положить файлы
.gemini/commands/svelte-storybook-troubleshoot.tomlGemini хранит команды в TOML: текст запроса — в поле prompt
Вопросы о svelte-storybook-troubleshoot
Как установить svelte-storybook-troubleshoot в Claude?
Запустите npx claude-code-templates@latest --command svelte/svelte-storybook-troubleshoot. Файл команды появится по пути .claude/commands/svelte-storybook-troubleshoot.md.
Что делает svelte-storybook-troubleshoot?
Диагностирует и правит частые проблемы Storybook в SvelteKit: ошибки сборки, разрешение модулей, стили, переменные окружения, конфликты аддонов и падающие interaction-тесты.
Какие ошибки она разбирает в первую очередь?
Ошибку __esbuild_register_import_meta_url__ already declared из-за svelteOptions в .storybook/main.js и сообщения вида Cannot find module '$app/stores', для которых нужны моки.
Исходный текст
svelte-storybook-troubleshoot.md · MIT
---
description: "Diagnose and fix common Storybook issues in SvelteKit projects, including build errors, module problems, and configuration issues."
---
# /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:
1. **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**:
```javascript
// .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;
}
};
```
2. **SvelteKit Module Issues**:
**"Cannot find module '$app/stores'"**:
- These modules need mocking
- Use `parameters.sveltekit_experimental`
- Create mock files if needed:
```javascript
// .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);
```
3. **CSS and Styling Issues**:
**Global Styles Not Loading**:
```javascript
// .storybook/preview.js
import '../src/app.css';
import '../src/app.postcss';
import '../src/styles/global.css';
```
**Tailwind Not Working**:
```javascript
// .storybook/main.js
export default {
addons: [
{
name: '@storybook/addon-postcss',
options: {
postcssLoaderOptions: {
implementation: require('postcss')
}
}
}
]
};
```
4. **Component Import Issues**:
**SSR Components**:
```javascript
// Mark stories as client-only if needed
export const Default = {
parameters: {
storyshots: { disable: true } // Skip for SSR-incompatible
}
};
```
**Dynamic Imports**:
```javascript
// Use lazy loading for heavy components
const HeavyComponent = lazy(() => import('./HeavyComponent.svelte'));
```
5. **Environment Variables**:
**PUBLIC_ Variables Not Available**:
```javascript
// .storybook/main.js
export default {
env: (config) => ({
...config,
PUBLIC_API_URL: process.env.PUBLIC_API_URL || 'http://localhost:3000'
})
};
```
**Create .env for Storybook**:
```bash
# .env.storybook
PUBLIC_API_URL=http://localhost:3000
PUBLIC_FEATURE_FLAG=true
```
6. **Performance Issues**:
**Slow Build Times**:
- Exclude large dependencies
- Use production builds
- Enable caching
```javascript
export default {
features: {
buildStoriesJson: true,
storyStoreV7: true
},
core: {
disableTelemetry: true
}
};
```
7. **Addon Conflicts**:
**Version Mismatches**:
```bash
# Check for version conflicts
npm ls @storybook/svelte
npm ls @storybook/sveltekit
# Update all Storybook packages
npx storybook@latest upgrade
```
8. **Testing Issues**:
**Play Functions Not Working**:
```javascript
// 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
1. [ ] Check Storybook and SvelteKit versions
2. [ ] Verify framework configuration
3. [ ] Check for module mocking needs
4. [ ] Validate Vite configuration
5. [ ] Review addon compatibility
6. [ ] Test in isolation mode
7. [ ] Check browser console errors
8. [ ] 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
© davila7 · MIT · davila7/claude-code-templates