首页 > 解决方案 > OpenApiGenerator - 如何因版本更改而跳过生成文件更改

问题描述

我正在使用typescript-rxjs发电机。每当我生成 API 客户端的新版本时,所有文件都会更改,其中 99% 是因为版本更改: * The version of the OpenAPI document: 1.47.0-rc.20. 真正的变化会在如此多的变化中消失。

我不想覆盖生成器的所有文件模板。这似乎效率低下,因为我必须观察模板的变化。

标签: typescriptopenapi-generator

解决方案


不同的 OpenAPI 生成器使用 Mustache 作为模板引擎来生成不同的工件。

在这个特定用例中,版本信息定义在licenseInfo.mustache.

此模板包含在用于生成不同客户端工件的其余模板中。

您可以尝试修改该模板并提供您自己的版本。OpenAPI 生成器使您能够覆盖现有模板。

修改后,您需要配置用作生成器的工具(CLI、Maven、Gradle),以指示在何处查找修改后的模板。

如有必要,您甚至可以提供自己的自定义用户定义模板

另一种方法可能是定义某种文件后处理逻辑,一旦生成器完成其处理,就会执行该逻辑。

typescript-rxjs生成器的情况下,要执行的代码必须在环境变量中定义为字符串值TS_POST_PROCESS_FILE

一个典型的例子:

export TS_POST_PROCESS_FILE="/usr/local/bin/prettier --write"

在您的情况下,也许您可​​以定义某种脚本,例如,使用sed或其他文本处理工具,如果您使用的是基于 linux 或 unix 的操作系统,或者自定义 node.js 脚本,它会删除该信息。解决方案将再次取决于实际机制——CLI、Maven、Gradle……——您用于生成代码。

话虽如此,请考虑是否有必要将生成的文件置于版本控制之下。可能有一些机制可以让你的代码直接生成和使用它,或者你可以定义 CI 流来生成一个可以在私有注册表中使用的 npm 包,并在必要时在你的不同项目中使用这个包。


推荐阅读