这玩意早该火了!前端大型项目必需品

当我们进行项目开发时,会经常需要反复检查node_modules目录中安装的模块版本。现有的解决方案(比如运行 npm list)速度缓慢,输出内容也杂乱无章。想要查看特定模块的 package.json 文件中的版本信息,需要耗费更多时间和步骤。同时,无法获取同一模块的其他实例相关信息。

所以此时,我们就需要一个东西,帮助我们更好地处理node_modules目录检查的问题,那么它就是

什么是 qnm?

qnm是一个解决 快速翻阅node_modules目录的工具,它能够快速、集中地提供已安装模块的相关信息。它支持 npm 和 yarn,让您迅速查找感兴趣模块的版本信息。

qnm 拥有丰富的功能特性:

  • 交互式模糊搜索,让查找更加便捷

  • 支持匹配所有包含特定字符串的模块

  • 解释当前项目为何安装特定包的原因

  • 单一仓库支持

  • 显示特定包的发布时间及最新版本信息

这个前端工具类开源项目已在 GitHub 上以 MIT 许可证开源,拥有超过 1.8k 的星标,绝对是一个值得关注的项目!

如何使用 qnm?

Bunx 是 Bun x 的简写,安装了 Bun 后,Bunx CLI 就会自动安装。它可以帮助你自动安装和运行 npm 中的软件包,类似于 Bun 的 npx 或 yarn dlx。

npx 则是 npm 的一部分,代表着Node Package Execute。如果你安装的是 5.2 及以上版本的 npm,那么 npx 会自动跟随安装。它可以直接运行 npm 注册表中的包,无需事先安装。

要使用 qnm,可以通过 Bunx/npx 运行它,我们以 Bunx 为例:

bunx qnm [module]

举例来说,如果你想查看已安装的 lodash 版本,只需运行:

bunx qnm lodash

然后会得到一个类似树状结构的输出,显示了已安装的 lodash 版本以及它们所在的路径和发布时间。

// 树状结构
lodash 4.17.21 ↰ 2 days ago
├── 4.17.21 ✓
├─┬ cli-table2
│ └── 3.10.1 ⇡ 1 year ago
└─┬ karma
  └── 3.10.1 ⇡ 1 year ago

在这里,你可以看到最新版本是4.17.21,发布于 2 天前,而其他两个版本是一年前发布的。

同时 qnm 还支持模糊搜索:

这玩意早该火了!前端大型项目必需品_第1张图片

使用不带参数的 qnm 命令,就像触发fzf的模糊搜索一样。

fzf是一个通用的命令行模糊搜索工具,用于与各种列表一起使用,比如文件、命令历史、进程、主机名、书签、甚至是 git 提交等等。github 地址:https://github.com/junegunn/fzf

目前在 GitHub 上已经获得了超过 60,000 个星标,是一个备受关注的顶级开源项目。

brew install fzf
// To install useful key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install

fzf类似。qnm 的模糊搜索功能也非常厉害,提供了以下丰富功能:

  • 可以输入内容进行筛选,快速过滤 node_modules 中的匹配项目。

  • 使用箭头键上下移动光标,Enter 键选择项目,CTRL-C / ESC 退出。

  • 使用 TAB 和 Shift-TAB 标记多个项目。

此外,QNM 还支持多种高级配置,例如:

  • --no-remote:加快运行速度,不从 npm 获取远程数据,提供更简洁的视图。

  • -o , --open:使用默认编辑器打开模块的 package.json 文件。

  • -d, --debug:查看完整的错误消息,主要用于调试。

  • --disable-colors:禁用大部分颜色和样式,如版本颜色。

命令行操作

我们可以直接通过doctor命令来显示node_modules中依赖 “比重(体积)” 对比。当我们想要剔除一个高比重(体积)的包时,就会非常有用了(比如通过 cdn 外链)。

bunx qnm doctor --sort duplicates

这玩意早该火了!前端大型项目必需品_第2张图片

更多内容可以查看 github 地址:https://github.com/ranyitz/qnm

这玩意早该火了!前端大型项目必需品_第3张图片

你可能感兴趣的:(前端)