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

Storybook manager.ts使用别名路径触发模块解析错误

问题根源

Storybook 的 manager.ts 和 preview.ts 属于两个完全独立的编译上下文:

  • preview.ts 是预览层配置文件,会继承你在 .storybook/main.ts 里设置的 webpack/Vite 别名规则;
  • manager.ts 是管理界面层配置文件,有独立的构建流程,默认不会读取预览层的别名配置,所以只有它会出现找不到 @ds/theme 的报错。
解决方案

根据你使用的打包工具(webpack 或 Vite),给 manager 单独配置别名:

如果你用 Webpack

在 .storybook/main.ts 中添加 managerWebpack 字段,同步预览层的别名配置:

// .storybook/main.ts
import type { StorybookConfig } from '@storybook/react-webpack5';
import path from 'path';

const config: StorybookConfig = {
  // 你的已有配置(如 stories、addons 等)
  stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
  addons: ['@storybook/addon-links', '@storybook/addon-essentials'],

  // 预览层的别名配置(你原有的代码)
  webpackFinal: async (config) => {
    config.resolve = {
      ...config.resolve,
      alias: {
        ...config.resolve?.alias,
        '@ds/theme': path.resolve(__dirname, '../src/theme'), // 替换为你的实际路径
      },
    };
    return config;
  },

  // 给管理界面层添加相同的别名配置
  managerWebpack: async (config) => {
    config.resolve = {
      ...config.resolve,
      alias: {
        ...config.resolve?.alias,
        '@ds/theme': path.resolve(__dirname, '../src/theme'), // 和预览层保持一致
      },
    };
    return config;
  },
};

export default config;

如果你用 Vite

在 .storybook/main.ts 中添加 managerVite 字段:

// .storybook/main.ts
import type { StorybookConfig } from '@storybook/react-vite';
import { defineConfig } from 'vite';

const config: StorybookConfig = {
  // 你的已有配置
  stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
  addons: ['@storybook/addon-links', '@storybook/addon-essentials'],

  // 预览层的别名配置
  viteFinal: async (config) => {
    return defineConfig({
      ...config,
      resolve: {
        alias: {
          '@ds/theme': '../src/theme', // 你的实际路径
        },
      },
    });
  },

  // 管理界面层的别名配置
  managerVite: async (config) => {
    return defineConfig({
      ...config,
      resolve: {
        alias: {
          '@ds/theme': '../src/theme', // 同步预览层别名
        },
      },
    });
  },
};

export default config;
验证

重启 Storybook 服务,manager.ts 中的 @ds/theme 导入即可正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:42:45