Skip to content

Commit 78f2254

Browse files
authored
feat(storybook): Node 24 and ESM compatibility (#505)
1 parent ccff19f commit 78f2254

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

packages/storybook/src/preset.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { createRequire } from 'node:module'
12
import path from 'node:path'
23

34
import type { PresetProperty } from '@storybook/types'
@@ -12,8 +13,14 @@ import { mockRouter } from './plugins/mock-router.js'
1213
import { reactDocgen } from './plugins/react-docgen.js'
1314
import type { StorybookConfig } from './types.js'
1415

15-
const getAbsolutePath = (input: string) =>
16-
path.dirname(require.resolve(path.join(input, 'package.json')))
16+
function getAbsolutePath(input: string) {
17+
const createdRequire = createRequire(import.meta.url)
18+
return path.dirname(
19+
createdRequire.resolve(path.join(input, 'package.json'), {
20+
paths: [getPaths().base],
21+
}),
22+
)
23+
}
1724

1825
export const core: PresetProperty<'core'> = {
1926
builder: getAbsolutePath('@storybook/builder-vite'),
@@ -23,7 +30,8 @@ export const core: PresetProperty<'core'> = {
2330
export const previewAnnotations: StorybookConfig['previewAnnotations'] = (
2431
entry,
2532
) => {
26-
return [...entry, require.resolve('./preview.js')]
33+
const createdRequire = createRequire(import.meta.url)
34+
return [...entry, createdRequire.resolve('./preview.js')]
2735
}
2836

2937
const redwoodProjectPaths = getPaths()

0 commit comments

Comments
 (0)