首页 > 解决方案 > 是否可以让 Storybook.js 使用非常大的自动生成的 Typescript 文件(>200 个类)?

问题描述

Storybook.js在使用另一个名为NSwag TypeScriptClientGenerator的库时遇到问题。

所以我不确定这是一个错误还是我的配置错误,但这里有详细信息。

TLDR 版本:

NSwag 生成一个包含数百个类的巨大 API 客户端文件。然后Storybook.js在尝试加载所有这些类时崩溃

更多细节:

我正在开发一个使用 REST API 的 Angular 项目。这个 API 有很多端点,我使用NSwag它是为了对这个 API 调用进行编译检查。

NSwag阅读 API 描述(openAPI/swagger),然后生成一个 typescript 文件,描述所有 API 端点和所有参数和返回类型。

这会导致一个非常大的打字稿文件,其中包含很多接口/类/函数。生成的代码行超过 30k 行,文件为2mo.

现在来了 Storybook.js。当我运行npm run storybook该工具时,首先创建documentation.json文件。

该文件包含每个类/接口 1 个 json 条目,并且对于这些条目中的每一个,都有一个sourceCode包含文件源代码的成员。

问题是该sourceCode成员包含所有文件代码,而不仅仅是类或接口代码。

由于该文件包含数百个类和接口,因此所有这些类都在documentation.json文件中进行了描述,并且所有这些条目都包含一个sourceCode包含所有 30k 行代码的成员(在屏幕截图中,行6011,599,000字符-> 有数百行像这在文件的其余部分)。

显示 sourceCode 填充所有 API 代码的图片

结果documentation.json文件大于700mo. 结果是故事书在尝试解析那个巨大的文件时崩溃了。

你有什么技巧可以解决这个问题吗?

问题:

是否可以告诉Storybook.js忽略此文件?如果是的话:这样做有什么缺点吗?

或者是否可以告诉Storybook.js不要创建此条sourceCode目?

或者也许可以要求 NSwag Typescript Generator 为每个类生成一个文件?

标签: typescriptstorybooknswagangular-storybook

解决方案


推荐阅读