chore(storybook): switch to yarn and fix Storybook compatibility

- Switch from bun to yarn with node_modules linker
- Downgrade Svelte to 5.46.1 for Storybook compatibility
- Switch Storybook framework from @storybook/sveltekit to @storybook/svelte-vite
- Downgrade Storybook packages to 10.1.11
- Add FSD path aliases to vite.config.ts
- Add Svelte plugin to Storybook viteFinal to handle .svelte files
This commit is contained in:
Ilia Mashkov
2026-03-07 13:35:26 +03:00
parent 3f9f6e3f93
commit 0b2eae33b1
6 changed files with 4371 additions and 25 deletions

View File

@@ -1,17 +1,59 @@
import type { StorybookConfig } from '@storybook/sveltekit';
import type { StorybookConfig } from '@storybook/svelte-vite';
import {
dirname,
resolve,
} from 'path';
import { fileURLToPath } from 'url';
import {
loadConfigFromFile,
mergeConfig,
} from 'vite';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const config: StorybookConfig = {
"stories": [
"../src/**/*.mdx",
"../src/**/*.stories.@(js|ts|svelte)"
stories: [
'../../src/**/*.mdx',
'../../src/**/*.stories.@(js|ts|svelte)',
],
"addons": [
"@storybook/addon-svelte-csf",
"@chromatic-com/storybook",
"@storybook/addon-vitest",
"@storybook/addon-a11y",
"@storybook/addon-docs"
addons: [
{
name: '@storybook/addon-svelte-csf',
options: {
// Use modern template syntax for better performance
legacyTemplate: false,
},
},
'@chromatic-com/storybook',
'@storybook/addon-vitest',
'@storybook/addon-a11y',
'@storybook/addon-docs',
],
"framework": "@storybook/sveltekit"
framework: '@storybook/svelte-vite',
async viteFinal(config) {
// This attempts to find your actual vite.config.ts
const { config: userConfig } = await loadConfigFromFile(
{ command: 'serve', mode: 'development' },
resolve(__dirname, '../../vite.config.ts'),
) || {};
const mergedConfig = mergeConfig(config, {
// Merge resolve/alias parts to maintain path aliases
resolve: userConfig?.resolve || {},
});
const { svelte } = await import('@sveltejs/vite-plugin-svelte');
mergedConfig.plugins = mergedConfig.plugins || [];
// Add Svelte plugin to process @storybook's .svelte files
// This prevents Vite from trying to parse them before compilation
mergedConfig.plugins.unshift(svelte({
include: [/node_modules\/@storybook\/.+\.svelte$/],
}));
return mergedConfig;
},
};
export default config;
export default config;