npm 包 @0x-lerna-fork/changed 使用教程

阅读时长 5 分钟读完

npm 是一个非常流行的 Node.js 包管理器,方便开发者快速安装、更新、卸载以及发布 npm 包。但是在一些大型项目中,我们需要经常更新依赖包,同时验证代码的改动是否对整个项目产生了影响。而 npm 包 @0x-lerna-fork/changed 的出现就解决了这个问题。本文将介绍如何使用该包进行项目代码的变动检测。

什么是 @0x-lerna-fork/changed 包

@0x-lerna-fork/changed 是基于 Lerna 的扩展包,专门用于快速检测项目中变动的包以及变动相关的依赖包。由于该包使用了 Lerna 的底层机制,因此前提是要使用 Lerna 管理项目。

如何使用 @0x-lerna-fork/changed 包

@0x-lerna-fork/changed 包非常容易使用,我们只需要在项目中使用 npm install 命令来安装即可。

安装完成后,我们可以使用 changed 命令来检测变动的相关信息。changed 命令支持三个参数,分别是:

  • --include-merged-tags: 包含合并的标签。
  • --since [branch|commit]: 自最后一个特定的 Git 提交或指定分支以来所做的更改。
  • --conventional-commits-only: 仅检测符合约定式提交的包。

我们可以在项目的 package.json 中添加一个 scripts 命令来执行 @0x-lerna-fork/changed 的命令。在该命令中,我们可以设置需要忽略变动的包,以及需要检测的包的路径。

在上述命令中,我们使用了 Lerna 的 lerna ls 命令来列出自上次提交以来所有找到的包信息。随后,将包信息传递给 changed 命令进行检测。其中,我们忽略的包是 @babel/cli@babel/core@babel/preset-env,需要检测的包的路径为 ./packages/**

示例代码

这里我们可以使用一个简单的 TypeScript 项目来演示如何使用 @0x-lerna-fork/changed 包进行变动检测。首先我们需要创建一个 TypeScript 项目,然后添加 Lerna 来管理包:

随后,我们在项目的根目录下创建一个 src 目录,并添加一个名为 add.ts 的文件,在该文件中添加以下代码:

接着,我们在该项目下使用 Lerna 来创建一个名为 sum 的包,该包需要使用 add 函数实现俩个数字相加功能。

在创建 sum 包后,我们可以在 sum 包中编辑 index.ts 文件,添加以下代码:

最后,我们需要在项目的 package.json 中添加测试命令:

在安装 Jest 库后,编写测试代码:

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

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

现在,我们已经完成了该项目的代码编写工作,并添加了一些简单的测试用例。在此基础上,我们可以使用 @0x-lerna-fork/changed 包来检测代码变动是否对项目造成了影响。

首先,我们需要在项目中安装 @0x-lerna-fork/changed 包:

接着,我们在项目的 package.json 中添加一个 changed 命令:

在上述命令中,我们忽略了 Jest、@types/jest 和 @0x-lerna-fork/changed 三个包,因为这些包并不需要被检测。而需要检测变动的包是 sum 包,其路径为 ./packages/**

执行该命令,我们可以在控制台中看到检测到了新增依赖包 @types/uniqid, 所以我们需要重新安装依赖包:

完整的示例代码参考:Github

总结

@0x-lerna-fork/changed 包可以帮助我们更好的管理项目。特别是在大型项目中,检测变动是否会对其他包文件产生影响非常重要。@0x-lerna-fork/changed 包的出现,方便我们快速检测代码变动,同时也保证了整个项目的完整性。

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