Skip to content

Commit 2578e87

Browse files
Skip Rollup "use client"directive warnings in Storybook
1 parent 0428158 commit 2578e87

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

.storybook/main.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import type { StorybookConfig } from '@storybook/react-vite';
2-
import { mergeConfig } from 'vite';
1+
import { type StorybookConfig } from '@storybook/react-vite';
2+
import { mergeConfig, type InlineConfig } from 'vite';
33
import tsConfigPaths from 'vite-tsconfig-paths';
4+
import { isLogIgnored } from '../rollup.config.js';
45

56
const config: StorybookConfig = {
67
stories: ['../stories/**/*.stories.@(ts|tsx)', '../stories/**/*.mdx'],
@@ -16,6 +17,17 @@ const config: StorybookConfig = {
1617

1718
viteFinal(config) {
1819
return mergeConfig(config, {
20+
build: {
21+
rollupOptions: {
22+
onwarn(warning, handler) {
23+
if (isLogIgnored(warning)) {
24+
return;
25+
}
26+
27+
handler(warning);
28+
},
29+
},
30+
},
1931
css: {
2032
preprocessorOptions: {
2133
scss: {
@@ -32,7 +44,7 @@ const config: StorybookConfig = {
3244
projects: ['./tsconfig.dev.json', './tsconfig.build.json'],
3345
}),
3446
],
35-
});
47+
} satisfies InlineConfig);
3648
},
3749
};
3850

rollup.config.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export default defineConfig(
4040
},
4141
],
4242
external: ['react/jsx-runtime', ...external],
43-
jsx: /** @type {const} */ ('react-jsx'),
43+
jsx: 'react-jsx',
4444
treeshake: false,
4545
plugins: [
4646
nodeResolve({
@@ -63,10 +63,7 @@ export default defineConfig(
6363

6464
// Handle warnings as errors
6565
onwarn(warning) {
66-
const { code, message } = warning;
67-
68-
// Skip warnings about "use client" directives
69-
if (code === 'MODULE_LEVEL_DIRECTIVE' && message.includes(`"use client"`)) {
66+
if (isLogIgnored(warning)) {
7067
return;
7168
}
7269

@@ -77,5 +74,21 @@ export default defineConfig(
7774
);
7875

7976
/**
80-
* @import { OutputOptions, RollupOptions } from 'rollup'
77+
* Whether to ignore Rollup log messages
78+
*
79+
* @param {RollupLog} warning
80+
*/
81+
export function isLogIgnored(warning) {
82+
const { code, message } = warning;
83+
84+
// Skip warnings related to "use client" directives including
85+
// source map issues when directives are bundled by Storybook
86+
return (
87+
code === 'SOURCEMAP_ERROR' ||
88+
(code === 'MODULE_LEVEL_DIRECTIVE' && message.includes('"use client"'))
89+
);
90+
}
91+
92+
/**
93+
* @import { OutputOptions, RollupLog, RollupOptions } from 'rollup'
8194
*/

0 commit comments

Comments
 (0)