Skip to content

Commit 8dda86b

Browse files
Copilothotlong
andcommitted
Fix Storybook build: Add Vite aliases for plugin packages to avoid circular dependencies
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 62c31e5 commit 8dda86b

3 files changed

Lines changed: 129 additions & 1 deletion

File tree

packages/components/.storybook/main.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import type { StorybookConfig } from "@storybook/react-vite";
2+
import { mergeConfig } from 'vite';
3+
import path from 'path';
24

35
const config: StorybookConfig = {
46
stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
@@ -14,5 +16,31 @@ const config: StorybookConfig = {
1416
docs: {
1517
autodocs: "tag",
1618
},
19+
async viteFinal(config) {
20+
return mergeConfig(config, {
21+
resolve: {
22+
alias: {
23+
// Alias components package to source to avoid circular dependency during build
24+
'@object-ui/components': path.resolve(__dirname, '../src/index.ts'),
25+
'@object-ui/fields': path.resolve(__dirname, '../../fields/src/index.tsx'),
26+
// Alias plugin packages for Storybook to resolve them from workspace
27+
'@object-ui/plugin-aggrid': path.resolve(__dirname, '../../plugin-aggrid/src/index.tsx'),
28+
'@object-ui/plugin-calendar': path.resolve(__dirname, '../../plugin-calendar/src/index.tsx'),
29+
'@object-ui/plugin-charts': path.resolve(__dirname, '../../plugin-charts/src/index.tsx'),
30+
'@object-ui/plugin-chatbot': path.resolve(__dirname, '../../plugin-chatbot/src/index.tsx'),
31+
'@object-ui/plugin-dashboard': path.resolve(__dirname, '../../plugin-dashboard/src/index.tsx'),
32+
'@object-ui/plugin-editor': path.resolve(__dirname, '../../plugin-editor/src/index.tsx'),
33+
'@object-ui/plugin-form': path.resolve(__dirname, '../../plugin-form/src/index.tsx'),
34+
'@object-ui/plugin-gantt': path.resolve(__dirname, '../../plugin-gantt/src/index.tsx'),
35+
'@object-ui/plugin-grid': path.resolve(__dirname, '../../plugin-grid/src/index.tsx'),
36+
'@object-ui/plugin-kanban': path.resolve(__dirname, '../../plugin-kanban/src/index.tsx'),
37+
'@object-ui/plugin-map': path.resolve(__dirname, '../../plugin-map/src/index.tsx'),
38+
'@object-ui/plugin-markdown': path.resolve(__dirname, '../../plugin-markdown/src/index.tsx'),
39+
'@object-ui/plugin-timeline': path.resolve(__dirname, '../../plugin-timeline/src/index.tsx'),
40+
'@object-ui/plugin-view': path.resolve(__dirname, '../../plugin-view/src/index.tsx'),
41+
},
42+
},
43+
});
44+
},
1745
};
1846
export default config;

packages/components/.storybook/preview.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,26 @@ import '../src/index.css';
33
import { ComponentRegistry } from '@object-ui/core';
44
import * as components from '../src/index';
55

6-
// Register all components for Storybook
6+
// Register all base components for Storybook
77
Object.values(components);
88

9+
// Import and register all plugin components for Storybook
10+
// This ensures plugin components are available for the plugin stories
11+
import '@object-ui/plugin-aggrid';
12+
import '@object-ui/plugin-calendar';
13+
import '@object-ui/plugin-charts';
14+
import '@object-ui/plugin-chatbot';
15+
import '@object-ui/plugin-dashboard';
16+
import '@object-ui/plugin-editor';
17+
import '@object-ui/plugin-form';
18+
import '@object-ui/plugin-gantt';
19+
import '@object-ui/plugin-grid';
20+
import '@object-ui/plugin-kanban';
21+
import '@object-ui/plugin-map';
22+
import '@object-ui/plugin-markdown';
23+
import '@object-ui/plugin-timeline';
24+
import '@object-ui/plugin-view';
25+
926
const preview: Preview = {
1027
parameters: {
1128
controls: {

pnpm-lock.yaml

Lines changed: 83 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)