К основному содержанию
команда

svelte-storybook-troubleshoot — команда для Claude Code: чинит

Слэш-команда разбирает типовые поломки Storybook в проектах на SvelteKit: ошибки сборки, неразрешённые модули, конфликты аддонов.

Установить в Claude Code · Через claude-code-templates Все способы и платформы ↓
npx claude-code-templates@latest --command svelte/svelte-storybook-troubleshoot
Открыть на GitHub

Что делает 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-troubleshoot

2Вручную: положить файлы

.claude/commands/svelte-storybook-troubleshoot.md

Вызов — /svelte-storybook-troubleshoot. Для всех проектов — ~/.claude/commands/

Вопросы о 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

Похожие слэш-команды

Всё по теме «Фронтенд и UI» →
svelte-code-writer sveltejs Скилл ищет официальную документацию Svelte 5 и проверяет компоненты через autofixer. Пригодится при написании и правке файлов .svelte или .svelte.ts. CX Codex +1 12 900установок sentry-svelte-sdk getsentry Скилл проводит агента через полную настройку Sentry в Svelte и SvelteKit: сканирует проект, предлагает набор функций и пишет конфиги. CX Codex +1 2 100установок svelte Claude MPM Team Скилл помогает писать интерфейсы на Svelte 5 и приложения на SvelteKit. Пригодится для реактивного состояния, компонентов и серверного или статического рендеринга. CX Codex +1 343установок writing-react-native-storybook-stories storybookjs Помогает агенту писать и править истории React Native по формату CSF: args, argTypes, декораторы, параметры аддонов и портируемые истории для тестов. CX Codex +1 681установок storybook-story-writing TheBushidoCollective Пишет и правит истории Storybook для компонентов: формат CSF3, все состояния компонента, сборка без ошибок. Пригодится, когда сториз расползаются и ломают билд. CX Codex +1 673установок setup-react-native-storybook storybookjs Скилл автоматизирует развёртывание Storybook 10 в проектах на React Native. Помогает настроить окружение для Expo, чистого React Native CLI или Re.Pack. CX Codex +1 526установок

Из того же набора205

Весь набор →
sync-health-monitor Слэш-команда проверяет здоровье синхронизации GitHub и Linear: лимиты API, вебхуки, задержки, ошибки. Пригодится, когда задачи перестали доезжать. 121установок svelte-storybook-mock Готовит моки модулей SvelteKit для историй Storybook, чтобы компонент рендерился в изоляции без запущенного приложения. 121установок ai-wrapper-product Помогает строить продукт вокруг AI API: промпты, учёт токенов, лимиты и защита от тонкой обёртки над чатом. 120установок sync-migration-assistant Слэш-команда для миграции задач между GitHub и Linear с проверкой данных и откатом. Пригодится, когда проекты переезжают между трекерами. 120установок concise-planning Превращает запрос на доработку в один план с атомарными шагами. Пригодится, когда нужно согласовать объём работ до правок в коде. 117установок deep-research-notebooklm Ведёт многошаговое исследование рынка, конкурентов или клиента на движке Google NotebookLM и сохраняет готовый бриф в файл. 115установок svelte-test-fix Слэш-команда для Claude, которая разбирает падающие тесты в Svelte и SvelteKit и предлагает исправления. Пригодится, когда тесты сыпятся после правок компонентов. 115установок wireshark-analysis Скилл для Claude, который помогает разбирать сетевой трафик в Wireshark: фильтры, потоки TCP/UDP, поиск аномалий и подозрительных пакетов. 113установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой