使用Turbo+pnpm运行Storybook时加载@storybook/react-vite预设失败
解决Turbo+pnpm环境下Storybook预设加载失败与构建器配置错误
问题原因
核心问题是pnpm的依赖挂载模式(hoisted)与Turbo执行环境结合时,Storybook无法找到@storybook/react-vite/preset模块,进而触发构建器配置失败。可能诱因包括依赖安装不完整、旧版本Storybook兼容bug,或Turbo对长运行服务的配置缺失。
解决方案
1. 清理并重新安装依赖
确保依赖无损坏或缺失:
- 删除根目录的
node_modules、pnpm-lock.yaml,以及apps/workshop/node_modules - 在项目根目录执行:
pnpm install
2. 验证单独运行Storybook
进入apps/workshop目录,执行本地开发命令确认依赖本身无问题:
pnpm dev
若能正常启动Storybook,说明问题出在Turbo执行配置;若仍报错,需排查依赖安装或版本问题。
3. 调整Turbo配置支持长运行服务
在根目录turbo.json中,为dev任务添加persistent: true,告知Turbo这是持续运行的服务:
{ "$schema": "https://turbo.build/schema.json", "globalDependencies": ["**/.env.*local"], "pipeline": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**", "!.next/cache/**", "storybook-static/**"] }, "lint": { "outputs": [] }, "dev": { "cache": false, "persistent": true } } }
4. 强制调用本地Storybook二进制文件(可选)
若Turbo仍调用根目录全局Storybook而非workspace内版本,修改apps/workshop/package.json的dev命令:
"scripts": { "dev": "pnpm exec storybook dev -p 6006", "build": "pnpm exec storybook build", "preview": "vite preview" }
5. 升级Storybook到稳定版本(可选)
旧版本Storybook 7.0.2存在pnpm workspace兼容bug,升级到最新稳定版:
在apps/workshop/package.json中将所有Storybook相关依赖版本改为^7.6.0,再执行pnpm install。
6. 验证Turbo运行
回到项目根目录,重新执行:
turbo run dev
内容的提问来源于stack exchange,提问作者CGalaxy
相关产品推荐
相关产品推荐

