描述问题
这个问题始于 https://github.com/storybookjs/storybook/releases/tag/v7.0.0-beta.29,我怀疑它可能与 #20615、
有关。
重现步骤
检查 https://github.com/storybookjs/status-page
转到 feat/upgrade-storybook
解决方法
要解决此问题的方法是自定义webpack以模拟 assert
:
import type { StorybookConfig } from '@storybook/nextjs';
const config: StorybookConfig = {
// ...
webpackFinal: async (config) => {
config.resolve = config.resolve || {};
config.resolve.alias = {
...config.resolve.alias,
// Mock assert to avoid issues like Cannot read properties of undefined (reading 'custom')
assert: false,
};
return config;
},
};
export default config;
7条答案
按热度按时间xbp102n01#
以下是关于此问题的GitStart工单:https://clients.gitstart.com/storybook-oss/1/tickets/STORYBOOK-21911
brqmpdu12#
在
pnpm
中,默认情况下所有包都被提升。由于这个问题,包assert
被提升了,这破坏了resolve.fallback
的webpack配置以及assert
包到browser-assert
的配置(因为解析assert
包不会失败)。我们可以更新
.npmrc
以防止提升assert
包(我们尝试过,效果很好),但我们需要在status-page
仓库上拥有write
权限才能提交PR。cc @vanessayuenn3b6akqbq3#
你好,
有没有同时的解决办法?
cuxqih214#
遇到了相同的问题。
我们认为可能是我们的故事导致了这个问题,所以删除了所有较旧的故事,并尝试使用nextjs13进行全新的构建。问题仍然存在,我们似乎无法找到导致此问题的原因。
7tofc5zh5#
对我来说,在webpack配置中添加一个
resolve.alias
解决了这个问题:kx7yvsdv6#
对我来说,在webpack配置中添加一个
resolve.alias
解决了这个问题:非常感谢!这正是我们需要的。
有任何想法可能导致这个问题吗?
8zzbczxx7#
非常感谢!这正是我们需要的。有任何想法可能导致这种情况吗?
无论您使用的是哪种软件包管理器,它都会拉取实际的
assert
软件包,而不是应该使用的browser-assert
软件包,这是通过 Storybook 中的fallback
配置实现的。请查看上面的第21911条帖子(评论)。