From 104d7a49887c1acdc53b8fe1efd8b6a14800f18f Mon Sep 17 00:00:00 2001 From: Mikhail Bashkirov Date: Mon, 27 May 2024 15:43:42 +0200 Subject: [PATCH] fix(storybook-builder): fix paths on Windows --- .../src/esbuild-plugin-commonjs-named-exports.ts | 8 ++++++-- packages/storybook-builder/src/rollup-plugin-mdx.ts | 4 ++-- .../src/rollup-plugin-prebundle-modules.ts | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/storybook-builder/src/esbuild-plugin-commonjs-named-exports.ts b/packages/storybook-builder/src/esbuild-plugin-commonjs-named-exports.ts index 636294f5b..3f5b87c4d 100644 --- a/packages/storybook-builder/src/esbuild-plugin-commonjs-named-exports.ts +++ b/packages/storybook-builder/src/esbuild-plugin-commonjs-named-exports.ts @@ -1,11 +1,13 @@ import type { Plugin } from 'esbuild'; import { readFile } from 'fs-extra'; -import { dirname } from 'path'; +import { dirname, relative } from 'path'; export function esbuildPluginCommonjsNamedExports(modules: string[]): Plugin { return { name: 'commonjs-named-exports', async setup(build) { + const slash = (await import('slash')).default; + const { init, parse } = await import('cjs-module-lexer'); await init(); @@ -56,7 +58,9 @@ export function esbuildPluginCommonjsNamedExports(modules: string[]): Plugin { return { resolveDir, - contents: `export { ${finalExports.join(',')} } from '${resolvedPath}';`, + contents: `export { ${finalExports.join(',')} } from '${slash( + relative(resolveDir, resolvedPath), + )}';`, }; }); diff --git a/packages/storybook-builder/src/rollup-plugin-mdx.ts b/packages/storybook-builder/src/rollup-plugin-mdx.ts index 8f46a590f..9ffb80e03 100644 --- a/packages/storybook-builder/src/rollup-plugin-mdx.ts +++ b/packages/storybook-builder/src/rollup-plugin-mdx.ts @@ -1,7 +1,7 @@ import { compile } from '@storybook/mdx2-csf'; import type { Options } from '@storybook/types'; import { exists, readFile } from 'fs-extra'; -import { isAbsolute } from 'path'; +import { isAbsolute, normalize } from 'path'; import remarkExternalLinks from 'remark-external-links'; import remarkSlug from 'remark-slug'; import type { Plugin } from 'rollup'; @@ -30,7 +30,7 @@ export function rollupPluginMdx(storybookOptions: Options): Plugin { if (!id.endsWith('.mdx.js')) return; const mdxPath = id.replace(/\.js$/, ''); - const mdxCode = await readFile(mdxPath, 'utf8'); + const mdxCode = await readFile(normalize(mdxPath), 'utf8'); const mdxLoaderOptions = await storybookOptions.presets.apply('mdxLoaderOptions', { ...mdxPluginOptions, diff --git a/packages/storybook-builder/src/rollup-plugin-prebundle-modules.ts b/packages/storybook-builder/src/rollup-plugin-prebundle-modules.ts index 96a7b8029..864c80c7d 100644 --- a/packages/storybook-builder/src/rollup-plugin-prebundle-modules.ts +++ b/packages/storybook-builder/src/rollup-plugin-prebundle-modules.ts @@ -1,12 +1,12 @@ import { stringifyProcessEnvs } from '@storybook/core-common'; import { build } from 'esbuild'; import { remove } from 'fs-extra'; -import { join } from 'path'; +import { join, normalize } from 'path'; import type { Plugin } from 'rollup'; import { esbuildPluginCommonjsNamedExports } from './esbuild-plugin-commonjs-named-exports.js'; import { getNodeModuleDir } from './get-node-module-dir.js'; -export const PREBUNDLED_MODULES_DIR = 'node_modules/.prebundled_modules'; +export const PREBUNDLED_MODULES_DIR = normalize('node_modules/.prebundled_modules'); export function rollupPluginPrebundleModules(env: Record): Plugin { const modulePaths: Record = {};