npm 包 @lerna/package-graph 使用教程

阅读时长 4 分钟读完

介绍

@lerna/package-graph 是一个用于管理 MonoRepo(多包仓库)的 npm 包,它能够帮助我们更便捷地操作包之间的依赖关系,并且可视化展示依赖图谱,方便开发者查看。

安装

通过 npm 安装:

或者通过 yarn 安装:

使用

生成依赖图谱

我们可以通过以下命令生成依赖图谱:

其中,--scope 指定目标包,--stream 参数是告诉 lerna 在输出结果时不要缓存。--include-dependencies 参数是告诉 lerna 在运行脚本时应该包括目标包所依赖的其他包。visualize 是指定需要运行的脚本名称。

具体实现时,在每个包的根目录下,新建一个文件 lerna.json,然后设置以下内容:

接着在目标包的 package.json 中加入以下代码:

这里的 dependencies-graph 是生成依赖图谱的脚本,使用 Graphviz 进行渲染生成一个图片文件。

图谱分析

图谱分析可以方便地了解每个包的依赖情况,包括直接依赖和间接依赖。这对于 MonoRepo 项目是很有指导意义的,可以帮助我们更加清晰地了解整体架构。

在分析图谱时,我们可以按照以下几个方面入手:

  1. 包之间的直接依赖关系;
  2. 包之间的间接依赖关系;
  3. 包之间的冲突依赖关系;
  4. 包的版本号。

示例代码

以下是一个基于 lerna 的项目的目录结构:

-- -------------------- ---- -------
-------
--- --------
-   --- -
-   -   --- ------------
-   -   --- ---
-   -   -   --- --------
-   -   --- ----
-   -       --- -------------
-   --- -
-   -   --- ------------
-   -   --- ---
-   -   -   --- --------
-   -   --- ----
-   -       --- -------------
-   --- -
-       --- ------------
-       --- ---
-       -   --- --------
-       --- ----
-           --- -------------
--- ----------
--- ------------

为了生成依赖关系图谱,我们可以先在 packages 目录下的每个包的根目录下,新建一个文件 lerna.json,然后设置以下内容:

接着在每个包的 package.json 中加入以下代码:

这里的 dependencies-graph 是生成依赖图谱的脚本,使用 Graphviz 进行渲染生成一个图片文件。

然后我们就可以通过以下命令生成依赖谱:

这个命令将会生成与包 a 相关的依赖图谱。

最后,我们可以在浏览器或者图片查看器中查看生成的图片文件,来分析依赖关系图谱。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/99920