在 monorepo 项目中,我们通常会有多个包,每个包都有自己的文档。但是,如果你想在整个 monorepo 中生成一份完整的文档,该怎么办呢?这时候,typedoc-plugin-monorepo
这个 npm 包就派上用场了。
什么是 typedoc-plugin-monorepo?
typedoc-plugin-monorepo
是一个 Typedoc 插件,它可以将多个包的文档合并成一个文档,并为每个包生成一个子文档。这个插件支持 TypeScript 和 JavaScript,并且支持 React 组件和文档源代码显示。
如何使用 typedoc-plugin-monorepo?
安装
首先,我们需要安装 typedoc-plugin-monorepo
。
--- ------- ---------- -----------------------
配置
接下来,我们需要在 tsconfig.json
文件中配置 Typedoc。具体来说,我们需要设置 out
和 entryPoints
属性。
- ------------------ - --- -- ---------- - --------------- -- ---------- - --------------- -------------- -- ----------------- - ------ ------- -------------- - ------------------------------------ ----------------------------------- -- --------- - ------------------------- - - -
上面的配置中,out
属性指定了生成文档的目录,entryPoints
属性指定了要包含在文档中的包的入口文件。
示例代码
下面是一个示例 monorepo 项目的目录结构:
----------- --- -------- - --- --------- - - --- --- - - - --- -------- - - - --- -------- - - --- --------- - --- --------- - - --- --- - - - --- -------- - - - --- ------------ - - --- --------- - --- ------ - --- --- - - --- -------- - --- --------- --- ------------- --- ------------
在这个 monorepo 中,我们有三个包:package-1
、package-2
和 shared
。其中,package-1
和 package-2
分别有自己的入口文件和文档;shared
包只有源代码和文档,没有入口文件。
下面是 package-1
的 src/index.ts
文件:
------ -------- ----------- -------- ------ - ------ ------- ---------- -
下面是 package-1
的 README.md
文件:
- ------- - ---- -- --- ------------- --- ------- -- -- --- --- ------------ -------- ------- ---- -------- ------- - -------- --- --- ----- -----
下面是 tsconfig.json
文件的内容:
- ------------------ - --------- ------ --------- ----------- -------------- ----- --------- ------ -- ---------- - ---------- -- ---------- - --------------- -------------- -- ----------------- - ------ ------- -------------- - ------------------------------------ ----------------------------------- -- --------- - ------------------------- - - -
运行
最后,我们可以运行 Typedoc 命令来生成文档了。
--- -------
生成的文档将会保存在 docs
目录中。打开 docs/index.html
文件,你就可以看到整个 monore
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/41044