- 文档
- 教程
- 知识库
【免费下载链接】til
:memo: Today I Learned
导读
本文基于 TIL 仓库中 determine-the-latest-release-of-a-hex-package.md 一文展开,介绍如何在不离开终端的情况下,借助mix自带的hex.info命令查询任意 Hex 包(如postgrex)的最新发布版本。读完本文,你将掌握一条即查即用的命令,并能把查询结果直接粘贴进项目的mix.exs依赖声明中,替代"打开浏览器 + 搜索引擎"的传统查版本流程。
场景:加依赖时,别再离开终端查版本
在 Elixir/Phoenix 项目中,往mix.exs里添加新依赖是高频操作。传统做法是打开浏览器、用搜索引擎搜索该包的版本号,再切回编辑器粘贴——来回切换既打断思路,又容易看错版本。TIL 仓库的这篇笔记记录的正是作者养成的更快的习惯:用mixCLI 自带的包信息查询能力,直接在终端里完成查版本。
mix内置了 Hex(Elixir 的包管理器)相关的任务,其中mix hex.info就是专门用来查询 Hex 包元数据的命令。它不需要你在浏览器里做任何搜索,一条命令即可拿到包的最新版本、全部历史版本、维护者、许可证和官方链接。
一条命令:mix hex.info
以查询postgrex(Elixir 生态中最常用的 PostgreSQL 驱动)为例,直接运行:
$ mix hex.info postgrex PostgreSQL driver for Elixir. Config: {:postgrex, "~> 0.12.0"} Releases: 0.12.0, 0.11.2, 0.11.1, 0.11.0, 0.10.0, 0.9.1, 0.9.0, 0.8.4, 0.8.3, 0.8.2, ... Maintainers: Eric Meadows-Jönsson, James Fish Licenses: Apache 2.0 Links: Github: https://github.com/elixir-ecto/postgrex命令语法非常直观:mix hex.info <包名>,把包名换成任何你想查询的 Hex 包即可。这段输出正是原文档中的完整示例,从上到下依次给出了包的用途简介、推荐配置、发布历史、维护者、许可证与项目链接。
读懂输出:每一行都值得注意
逐行解读上面的输出,可以更好地理解 Hex 包元数据的组成:
| 输出行 | 含义 | 使用价值 |
|---|---|---|
PostgreSQL driver for Elixir. | 包的一句话简介 | 确认包名没有查错、功能是否匹配需求 |
Config: {:postgrex, "~> 0.12.0"} | 推荐的依赖元组(含最新版本) | 本文核心——可直接粘贴进mix.exs |
Releases: 0.12.0, 0.11.2, ... | 按版本号从新到旧排列的完整发布列表 | 需要锁定历史版本时从中挑选 |
Maintainers: ... | 维护者名单 | 评估包的维护活跃度 |
Licenses: ... | 开源许可证类型 | 合规审查时需要关注 |
Links: | 官方项目主页等链接 | 需要阅读源码或文档时跳转 |
原文档特别强调:第三行Config:就是你需要的信息,而且它已经按 Elixir 依赖元组的格式排好,拿来即可用,不需要任何手工格式转换。
从终端直接到 mix.exs:粘贴即用
mix hex.info最大的便利在于"输出即答案":Config: {:postgrex, "~> 0.12.0"}这行就是 Elixir 标准依赖声明格式,可以直接原样粘贴到项目的mix.exs的deps/0函数中:
defp deps do [ {:postgrex, "~> 0.12.0"} # ...其他依赖 ] end粘贴后运行mix deps.get即可完成依赖安装。~>是 Elixir 的兼容性版本约束(requirement)运算符,"~> 0.12.0"表示"允许 0.12.x 系列中的最新版本,但不跨越主版本 0.13";如果你的项目明确需要某个历史版本,也可以从Releases:列表里挑一个具体的版本号,例如改为"~> 0.9.1"。这样既拿到了最新版本号,又能按项目需要灵活约束版本范围。
相关命令:把 Hex 用得更顺手
mix hex.info属于mix hex任务族,围绕"查包、选版本"这一场景还有几条高频命令可以配合使用:
mix hex.search <关键词>:按关键词搜索 Hex 仓库中的包,适合记不清包名时使用;mix hex.package fetch <包名> <版本>:下载某个包的 tarball,便于离线查看其源码与mix.exs;mix deps.update <包名>:依赖已安装后,用它把某个包升级到当前约束允许的最新版本;mix hex.info <包名> <版本>:指定版本号,查询某个历史版本的详细信息。
这些命令共同构成了"查询 → 声明 → 安装 → 升级"的完整终端工作流,让依赖管理全程不离开命令行。
注意事项与前提
mix hex.info依赖本机已安装 Elixir/Mix,并需要 Hex 可用(通常安装 Elixir 后首次运行会提示安装 Hex,按提示执行mix local.hex --force即可);- 查询结果反映的是查询时刻 Hex 仓库中的最新数据,版本号会随时间变化。本文示例中
postgrex的版本(0.12.0及之后的发布列表)以 TIL 原文档撰写时的输出为准,请以你自己终端中的实时结果为准; - 若查询的包名不存在或拼写有误,命令会返回相应提示,此时核对包名后再试即可。
相关阅读
- 本文的原始笔记:determine-the-latest-release-of-a-hex-package.md
- 终端内查看项目目录结构的技巧:listing-files-in-iex.md
- 仓库 Elixir 分类下的其他实践笔记:见 README.md 中 "Elixir" 章节(elixir 目录)
- 文档
- 教程
- 知识库
【免费下载链接】til
:memo: Today I Learned
相关推荐
PRQL 的 Elixir 绑定:使用 Rustler NIF 在 Elixir 中编译 PRQL 查询
PRQL 的 Elixir 绑定:使用 Rustler NIF 在 Elixir 中编译 PRQL 查询 本指南围绕 PRQL 仓库中的 Elixir 语言绑定
后端PRQL Elixir Bindings:在 Elixir 中编译 PRQL 查询为 SQL 的完整指南
PRQL Elixir Bindings:在 Elixir 中编译 PRQL 查询为 SQL 的完整指南 PRQL(Pipelined Relational Q
后端vue-cli-version-marker:解开 npm scoped 包“最新版本查询”困局的版本标记设计
vue cli version marker:解开 npm scoped 包“最新版本查询”困局的版本标记设计 vue cli version marker 是
前端开发工具构建工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考