带有故事书 6 的 Angular 8

Posted

技术标签:

【中文标题】带有故事书 6 的 Angular 8【英文标题】:Angular 8 with Storybook 6 【发布时间】:2020-12-07 06:10:54 【问题描述】:

安装和启动故事书时出现以下错误。

ERROR in /Users/username/angular-storybook/src/stories/Button.stories.ts
ERROR in /Users/username/angular-storybook/src/stories/Button.stories.ts(2,29):
TS2307: Cannot find module '@storybook/angular/types-6-0'.

ng 版本

Angular CLI: 8.3.29
Node: 12.16.2
OS: darwin x64
Angular: 8.2.14

开发依赖

    "@compodoc/compodoc": "^1.1.11",
    "@storybook/addon-actions": "^6.0.12",
    "@storybook/addon-essentials": "^6.0.12",
    "@storybook/addon-links": "^6.0.12",
    "@storybook/angular": "^6.0.12"

【问题讨论】:

【参考方案1】:

作为一种解决方法,我更新了来自 Button、Header、Page.stories 的导入:

From --->
import  Story, Meta  from '@storybook/angular/types-6-0';

To  ---->
import  Story, Meta  from '@storybook/angular';

这很好用。但不确定为什么样板代码有问题。 :( 这适用于 6.0.12 版本。

更新: 使用较新版本的故事书(>6.2.*), 在 .storybook 目录中的 typings.d.ts 中显式声明。 (@Mr.7提到)

declare module '@storybook/angular'

【讨论】:

谢谢你,让我免了一些头痛,我很感激 :)【参考方案2】:

就我而言,我尝试了 Subhakant 的解决方法,但这对我不起作用。经过一番研究,我发现了这一点。

.storybook 目录内的 typings.d.ts 中的显式声明使其工作

declare module '@storybook/angular'

【讨论】:

【参考方案3】:

对我来说,这些都不起作用。我使用npx sb init 将故事书添加到现有的 Angular 6 项目中。可悲的是,它没有正确设置故事书,我收到了与 OP 相同的错误,但这里没有一个解决方案对我有用。最后我意识到,我的打字稿版本已经过时(3.8.4),但设置是针对 TS 3.9 的。我将 typescript 更新为 3.10.4,现在一切正常。

【讨论】:

以上是关于带有故事书 6 的 Angular 8的主要内容,如果未能解决你的问题,请参考以下文章

故事书找不到模块'@storybook/angular'[重复]

将故事书组件导入另一个 Angular 项目

如何解决 nrwl 故事书配置错误?

带有 redux 组件的故事书

带有 Tailwind 和 Emotion 设置的故事书

带有绝对路径的故事书