【问题标题】:How to properly exclude test files from tsdoc / typedoc如何从 tsdoc / typedoc 中正确排除测试文件
【发布时间】:2021-05-31 12:27:38
【问题描述】:

我正在测试一些不同的文档引擎,我想为我们的大型项目尝试 typedoc。我们在整个项目中都有各种测试文件(somefile.test.tssomeotherfile.test.tsx)。我正在努力让 typedoc 忽略这些文件。我做了npm i -D typedoc,然后在我的 tsconfig.json 中

{
  "compilerOptions": {
    "configOptions": "some_options"
  },
  "include": ["src"],
  "typedocOptions": {
    "out": "docs",
    "entryPoints": "src/index.tsx",
    "exclude": [
      "**/*.test.ts*",
      "**/*.test.tsx*"
    ]
  }
}

然后我运行我的 npm 命令"tsdoc": "typedoc" - npm run tsdoc。 Typedoc 遍历我的文件并在我的测试文件中发现大量的打字稿 linting 错误,因此它无法运行。 (我们最近更新了我们的@types/jest,所以 eslint 和 ts 抱怨诸如 Property 'toEqual' does not exist on type 'Assertion'Property 'toMatchSnapshot' does not exist on type 'Assertion' 之类的事情。eslint 和 ts 抱怨这些事情,但它不会阻止测试运行。但是有什么问题我的typedocOptions 没有正确忽略这些文件?

【问题讨论】:

    标签: typescript jsdoc documentation-generation typedoc tsdoc


    【解决方案1】:

    这完全是在黑暗中拍摄,但我猜typedoc 在尝试生成文档之前会运行tsc,以创建文件之间的链接。如果tsc/eslint 给出错误,它可能无法检查要排除哪些文件。

    我建议您调查一下 Jest 升级为何会搞砸。一旦编译器/linting 错误消失,我想typedoc 会配合。你也可以告诉tsc/eslint 忽略这些文件,但我想不编译测试文件会导致进一步的问题。

    【讨论】:

    • 如果是这样的话,那么typedocOptionsexclude 属性对我来说似乎有点无用。最后,我的团队决定使用mkdocs 使用手写文档,因为 typedoc 似乎只是内联 cmets 的修饰版本。感谢您的回复。
    • 嗯,这取决于 typedoc 的作者打算排除什么。我的期望是文档编写应用程序将使用排除项来排除不记录的文件,而不是不应该编译的文件。 docwritsr 会期望它在可编译的代码上运行,就像 javadoc 一样。
    • 我想有趣的是,即使我的测试文件自 @types/jest 升级以来充满了 typescript eslint 问题,它们仍然可以通过 jest 编译和运行,但是 typedoc 存在问题。我可能会尝试你的建议,从 eslint 中排除所有 .test.ts 文件,因为团队中的任何人似乎都不关心他们是否有 linting 错误(我们只关注实际代码中的 linting 错误,而不是测试)。我会看看我是否有时间尝试一下,如果有帮助,我会告诉你。
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2019-01-11
    • 2011-02-11
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多