macOS下执行pnpm run storybook报错start-storybook: command not found求助
问题描述
我在package.json中添加了如下命令:
"storybook": "start-storybook -p 9001 -c .storybook"
执行pnpm run storybook时出现错误:
> pnpm run storybook > ui-component@0.1.53 storybook /Users/john/source/frontend/ui-component > start-storybook -p 9001 -c .storybook sh: start-storybook: command not found ELIFECYCLE Command failed.
已安装的Storybook相关依赖:
> pnpm list|grep "storybook" @storybook/cli 7.0.10 @storybook/react 7.0.10 @storybook/react-vite 7.0.10
试过安装依赖、重启VS Code,也尝试用sb命令,问题仍未解决。
解决方案
以下几种方法可以尝试解决这个问题:
- 用pnpx调用本地命令
把package.json里的命令改成用pnpx指定调用本地包的可执行文件:
"storybook": "pnpx start-storybook -p 9001 -c .storybook"
pnpx会自动查找项目node_modules里的对应命令,避免全局命令缺失的问题。
- 重新安装Storybook依赖
可能存在依赖安装不完整的情况,重新安装一次相关包:
pnpm add -D @storybook/cli @storybook/react @storybook/react-vite
安装完成后再执行pnpm run storybook测试。
- 改用Storybook 7.x的新命令格式
Storybook 7.x版本官方推荐用sb命令替代start-storybook,修改package.json的命令为:
"storybook": "sb dev -p 9001 -c .storybook"
之后执行pnpm run storybook即可。
- 重置依赖安装
如果以上方法都不行,删除项目的依赖目录和锁文件后重新安装:
rm -rf node_modules pnpm-lock.yaml pnpm install
安装完成后再尝试启动Storybook。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

