From b336a151134963228f83e88ab002a310d1866275 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 6 Jul 2022 08:01:10 -0700 Subject: [PATCH 1/4] Add `.storybook` to `server.fs.allow` --- packages/builder-vite/vite-config.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/builder-vite/vite-config.ts b/packages/builder-vite/vite-config.ts index 633215c0..2b215376 100644 --- a/packages/builder-vite/vite-config.ts +++ b/packages/builder-vite/vite-config.ts @@ -40,6 +40,11 @@ export async function commonConfig( cacheDir: 'node_modules/.vite-storybook', envPrefix, define: {}, + server: { + fs: { + allow: ['.storybook'] + } + }, resolve: framework === 'vue3' ? { From 19a0804be421f29397a9aac75401dd83e0f6c250 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 6 Jul 2022 12:13:07 -0700 Subject: [PATCH 2/4] lint formatting --- packages/builder-vite/vite-config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/builder-vite/vite-config.ts b/packages/builder-vite/vite-config.ts index 2b215376..0c0f9c6d 100644 --- a/packages/builder-vite/vite-config.ts +++ b/packages/builder-vite/vite-config.ts @@ -42,8 +42,8 @@ export async function commonConfig( define: {}, server: { fs: { - allow: ['.storybook'] - } + allow: ['.storybook'], + }, }, resolve: framework === 'vue3' From 137a8c69e9b504d8b7164693a0780fca09fbe7c6 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 6 Jul 2022 14:42:39 -0700 Subject: [PATCH 3/4] more robust solution --- packages/builder-vite/vite-config.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/builder-vite/vite-config.ts b/packages/builder-vite/vite-config.ts index 0c0f9c6d..700d5811 100644 --- a/packages/builder-vite/vite-config.ts +++ b/packages/builder-vite/vite-config.ts @@ -40,11 +40,6 @@ export async function commonConfig( cacheDir: 'node_modules/.vite-storybook', envPrefix, define: {}, - server: { - fs: { - allow: ['.storybook'], - }, - }, resolve: framework === 'vue3' ? { @@ -73,6 +68,15 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig // Do not treat story files as HMR boundaries, storybook itself needs to handle them. exclude: [/\.stories\.([tj])sx?$/, /node_modules/].concat(framework === 'react' ? [] : [/\.([tj])sx?$/]), }), + { + name: 'vite-plugin-storybook-allow', + enforce: 'post', + config(config) { + if (config?.server?.fs?.allow) { + config.server.fs.allow.push('.storybook'); + } + }, + }, ] as Plugin[]; if (framework === 'vue' || framework === 'vue3') { try { From f51955db6b2794fff2edab2393caf0657f0fd618 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 6 Jul 2022 20:17:28 -0700 Subject: [PATCH 4/4] add comment --- packages/builder-vite/vite-config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/builder-vite/vite-config.ts b/packages/builder-vite/vite-config.ts index 700d5811..b1603e7a 100644 --- a/packages/builder-vite/vite-config.ts +++ b/packages/builder-vite/vite-config.ts @@ -72,6 +72,10 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig name: 'vite-plugin-storybook-allow', enforce: 'post', config(config) { + // if there is no allow list then Vite allows anything in the root directory + // if there is an allow list then Vite allows anything in the listed directories + // add the .storybook directory only if there's an allow list so that we don't end up + // disallowing the root directory unless it's already disallowed if (config?.server?.fs?.allow) { config.server.fs.allow.push('.storybook'); }