You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ladle已识别所有stories但主显示窗口完全空白问题求助

Ladle启动后识别到stories但主窗口空白排查方案

问题背景

  • 项目已完成多份组件stories编写,在原有Storybook环境基础上并行安装Ladle,两款工具分工为:Ladle用于UI开发阶段快速迭代,Storybook用于交互测试及其他插件能力支撑
  • 执行npx ladle serve命令后可正常唤起浏览器,所有stories均被成功检测,但main.ladle-main节点对应的主显示窗口完全空白,无任何内容渲染
  • 同一代码分支下Storybook运行完全正常,尝试以debug模式启动Ladle服务,无法从输出日志中定位有效问题线索
  • 项目中绝大多数stories都配置了play函数,暂未确认该特性是否为问题诱因
  • 已将Storybook preview文件中的全局装饰器逻辑复制到.ladle/components.tsx文件,对应配置代码如下:
import type { GlobalProvider } from "@ladle/react";
import { AppWrapper } from "../src/AppWrapper";

export const Provider: GlobalProvider = ({ children, globalState }) => (
  <>
    <header>
      <link
        href="https://fonts.googleapis.com/css?family=Roboto:100,200,300,400,500,600,700"
        rel="stylesheet"
      />
      <link
        href="https://fonts.googleapis.com/css?family=Roboto+Condensed:400,500,600,700"
        rel="stylesheet"
      />
    </header>
    <AppWrapper>{children}</AppWrapper>
  </>
);

排查步骤(按优先级从高到低)

  • 先查浏览器前端控制台报错
    别死磕服务端debug日志,Ladle服务端只会记录构建、服务启动类的日志,前端运行时错误根本不会打到服务端。直接按F12打开开发者工具切到Console面板,看红色报错信息就行,90%以上的白屏问题这里能直接看到明确错误栈,比如调用了不存在的API、DOM查询失败、模块加载失败这类问题,服务端日志半毛钱线索都给不出来。
  • 验证play函数兼容性问题
    Ladle原生不支持Storybook的play函数配置,如果stories直接导出play字段,Ladle解析story配置时很容易触发静默运行时异常,连报错都不一定往外抛。可以临时把所有stories里的play字段注释掉,重启Ladle服务,如果页面恢复渲染,就实锤是这个问题。后续加个环境判断就行,只在Storybook环境下注入play逻辑。
  • 排查全局Provider逻辑问题
    你现在写的Provider里把字体<link>标签放在自定义的<header>节点里,Ladle不会把这部分内容插到文档head区域,不过这个问题只会导致字体加载不出来,不会引发白屏,不用先纠结这个。
    重点查AppWrapper的逻辑:临时把<AppWrapper>包裹去掉,直接返回children,重启服务看能不能正常渲染。如果恢复了,说明AppWrapper内部依赖了Storybook专属的运行时API(比如Storybook内置的上下文hook、参数获取方法这类),这些API在Ladle环境里根本不存在,调用时会直接触发未捕获错误中断渲染,给这部分逻辑加个环境判断就行。

补个容易漏的点:如果项目里配了路径别名、按需引入这类自定义构建配置,记得同步到Ladle的配置文件里,模块解析失败也会导致白屏,不过这类问题一般控制台都会报明确的“模块找不到”错误,很好定位。

内容的提问来源于stack exchange,提问作者Jonathan Tuzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:36:19