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

Next.js集成Storybook时出现Cannot read properties of undefined(reading 'name')错误

解决Storybook + Next.js集成时的Cannot read properties of undefined (reading 'name')错误

问题根源及修复步骤

1. 移除main.js中的无效顶层module配置

Storybook的main.js不支持直接设置顶层module字段,你之前的写法会覆盖默认Webpack配置,导致@storybook/addon-actions等插件的内部代码无法被正确编译,进而触发读取undefined.name的错误。

修改后的main.js:

const path = require('path');

module.exports = {
  stories: [
    '../**/*.stories.mdx',
    '../**/*.stories.@(js|jsx|ts|tsx)',
  ],
  addons: [
    '@storybook/addon-links',
    '@storybook/addon-essentials',
    '@storybook/preset-scss',
    '@storybook/addon-interactions',
  ],
  framework: '@storybook/react',
  core: { builder: '@storybook/builder-webpack5' },
  webpackFinal: async (config) => {
    // 追加自定义规则,而非直接覆盖默认配置
    config.module.rules.push(
      { 
        test: /\.scss$/, 
        use: ['style-loader', 'css-loader?url=false', 'sass-loader'], 
        include: path.resolve(__dirname, '../') 
      },
      { 
        test: /\.tsx?$/, 
        use: 'ts-loader', 
        exclude: /node_modules/ 
      }
    );
    // 配置别名
    config.resolve.alias = {
      ...config.resolve.alias,
      '@': path.resolve(__dirname, '../'),
    };
    return config;
  },
};

2. 确保路由插件版本兼容

storybook-addon-next-router与Storybook版本不匹配时,可能会导致Router上下文传递异常,间接引发该错误。执行以下命令更新插件:

npm update storybook-addon-next-router
# 或 yarn 用户执行:
yarn upgrade storybook-addon-next-router

3. 优化Next.js Image组件的处理(可选)

当前的Image组件重写方式可以简化,同时避免潜在的上下文冲突:
修改preview.js中的Image处理部分:

import NextImage from 'next/image';

// 直接包装组件,无需修改全局default属性
const UnoptimizedNextImage = (props) => (
  <NextImage {...props} unoptimized />
);

// 若使用Storybook官方Next.js插件,可通过参数统一配置
export const parameters = {
  // ...其他参数
  nextjs: {
    image: { unoptimized: true },
  },
};

4. 清理缓存并重启Storybook

缓存异常可能导致旧配置残留,执行以下命令清理后重启:

npx storybook --no-manager-cache
# 或手动删除缓存目录
rm -rf node_modules/.cache/storybook

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:15:27