Storybook从6.2.13升级到6.5.14启动报错求助
核心错误是Webpack检测到同一个entry文件被重复添加:configuration.entry should not contain the item '/.../@storybook/react/dist/esm/client/preview/config-generated-config-entry.js' twice,试试下面这些方法:
清理Storybook缓存
直接带参数启动跳过缓存:yarn storybook --no-manager-cache或者手动删除项目根目录下的
.storybook/cache文件夹,缓存残留是这类升级后重复配置问题的常见原因。检查
.storybook/main.js配置
打开你的Storybook主配置文件,确认:addons数组里没有重复声明的插件,比如是否同时加了旧版和新版的同类型addon- 没有在
webpackFinal里手动添加了那个重复的entry文件,避免和Storybook自动生成的配置冲突
重新安装依赖
删除node_modules和yarn.lock,然后重新安装:rm -rf node_modules yarn.lock yarn install升级后可能存在依赖版本不兼容或者旧文件残留,重装能解决这类问题。
更新静态资源配置
报错里有--static-dir的警告,虽然不是直接报错原因,但改成新版配置方式可以避免潜在冲突:
在.storybook/main.js里添加:module.exports = { // 其他配置... staticDirs: ['../public'], };然后把启动命令里的
-s public去掉,用yarn storybook -p 6006启动。适配React 18配置
因为你用了React 18,在.storybook/preview.js里添加React 18的渲染配置:import { render } from 'react-dom/client'; export const renderToDOM = (story) => { const root = document.getElementById('root'); return render(story, root); };这能避免React版本和Storybook默认渲染逻辑的冲突。
如果以上方法都不行,可以尝试完全重置Storybook配置:备份.storybook文件夹后,用npx storybook@6.5.14 init重新初始化配置,再逐步迁移你的自定义配置。
内容的提问来源于stack exchange,提问作者qqq

