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

Storybook启用Import Names类型修饰符后启动崩溃求助

解决Storybook兼容TypeScript 4.5+类型导入语法的方案

问题根源

Storybook内置的Babel解析器未启用对TypeScript 4.5+ type 导入语法的支持,导致解析失败。

具体解决步骤

1. 配置Babel识别类型导入

在项目根目录新建或修改.babelrc/babel.config.json,添加TypeScript预设并开启类型导入支持:

{
  "presets": [
    ["@babel/preset-typescript", { "onlyRemoveTypeImports": true }],
    "@babel/preset-react"
  ]
}

onlyRemoveTypeImports参数能让Babel正确识别type FocusEventHandler这类语法,不会把它当成普通变量导入处理。

2. 强制Storybook使用项目本地的TypeScript

Storybook可能自带旧版TypeScript,在.storybook/main.js/.storybook/main.ts里添加配置,指定使用项目本地的TS版本和配置:

module.exports = {
  typescript: {
    check: false,
    reactDocgen: 'react-docgen-typescript',
    reactDocgenTypescriptOptions: {
      compilerOptions: {
        allowSyntheticDefaultImports: true,
        esModuleInterop: true,
      },
      tsconfigPath: '../tsconfig.json', // 指向项目根目录的tsconfig
    },
  },
};

同时确保项目的tsconfig.json里启用了TS 4.5+的必要配置:

{
  "compilerOptions": {
    "module": "ESNext",
    "target": "ES2020",
    "moduleResolution": "NodeNext",
    "importsNotUsedAsValues": "error",
    "preserveValueImports": true
  }
}

3. 升级Babel相关依赖

安装最新版的Babel核心和TypeScript预设,保证版本兼容:

npm install --save-dev @babel/core@latest @babel/preset-typescript@latest

如果用的是Webpack 4的builder,建议切换到Webpack 5(Storybook v7默认使用该版本),在.storybook/main.js里修改:

module.exports = {
  core: {
    builder: '@storybook/builder-webpack5',
  },
};

然后安装对应依赖:

npm install --save-dev @storybook/builder-webpack5 @storybook/manager-webpack5

4. 清除缓存重启

最后清除Storybook缓存再启动,避免旧配置残留:

npx storybook dev --no-manager-cache

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:47:11