如何在PNPM Monorepo中运行Sanity Studio v3开发模式?
问题解决:PNPM Monorepo根目录启动Sanity Studio v3开发模式失败
问题核心
在PNPM Monorepo根目录执行pnpm start:sanity时,触发Sanity v3的版本提示,提示需用dev命令启动开发服务器,但按回车后无法进入开发模式。
原因分析
根目录package.json里的start:sanity脚本写法错误:
"start:sanity": "pnpm -F @sanity-3-playground/sanity pnpm dev"
这里多嵌套了一层pnpm,当使用pnpm -F <包名>指定执行目标包时,直接跟脚本名称即可调用子包的对应脚本,无需再加pnpm。冗余的pnpm会导致命令执行逻辑异常,无法正确触发子包的sanity dev命令,还会引发交互输入失效的问题。
解决方案
修改根目录package.json的start:sanity脚本为:
"start:sanity": "pnpm -F @sanity-3-playground/sanity dev"
修改后,在根目录执行pnpm start:sanity,即可直接调用Sanity子包的dev脚本,启动开发模式服务器。
额外说明
- Sanity Studio v3中,
start命令用于预览已构建的静态Studio文件,dev命令才是启动开发服务器,不要混淆两者用途。 - 若要一次性启动所有服务,根目录的
start脚本pnpm -r start会执行所有子包的start命令,若想同时启动SvelteKit开发服务和Sanity开发服务,可调整为:
(注:Windows系统需用"start": "pnpm run start:sveltekit & pnpm run start:sanity"start命令或并行工具,如npm-run-all)
内容的提问来源于stack exchange,提问作者Tithos
相关产品推荐
相关产品推荐

