starship 的 package 模块需启用并配置才能显示项目依赖包版本:一、在 ~/.config/starship.toml 中设置 disabled = false 并定义 format;二、可自定义 symbol、style 及基于 $manager 的条件格式;三、通过 detect_files 等参数限制触发范围;四、用 version_format 精简版本号;五、通过 manager 列表控制检测的包管理器类型。

如果您在终端中使用 Starship,但当前提示符未显示项目依赖包版本(如 npm、Cargo、Poetry 等),则可能是 package 模块被禁用或格式配置不完整。以下是启用并定制包版本号显示的具体步骤:
一、启用 package 模块并设置基础显示格式
Starship 的 package 模块默认检测当前目录下的 manifest 文件(如 package.json、Cargo.toml、pyproject.toml 等),并提取版本字段。启用该模块需在配置文件中取消禁用状态,并定义基本格式。
1、打开或创建 Starship 配置文件:~/.config/starship.toml。
2、在文件末尾添加以下 TOML 片段:
[package]
disabled = false
format = "via $symbol$version "
3、保存文件后,重新加载 shell 配置(例如执行 source ~/.zshrc 或重启终端)。
二、自定义 package 图标与颜色样式
不同包管理器对应不同图标和语义颜色,可通过 symbol 和 style 属性分别控制显示符号与文本样式,提升可读性与一致性。
1、修改 [package] 区块,加入 symbol 与 style 配置:
[package]
symbol = "? "
style = "bold cyan"
2、若需为特定包管理器差异化显示(如 npm 使用 Node.js 绿色、Cargo 使用 Rust 橙色),可启用多条件格式字符串,利用模块变量 $manager 进行判断:
format = "(if $manager == 'npm' { 'via ? $version ' } else if $manager == 'cargo' { 'via ? $version ' } else { 'via $symbol$version ' })"
三、限制 package 模块触发范围
避免在非项目根目录误显版本号,可通过设置 detect_extensions、detect_files 或 detect_folders 参数,精确控制模块激活条件。
1、仅当存在 package.json 或 Cargo.toml 时才启用:
[package]
detect_extensions = []
detect_files = ["package.json", "Cargo.toml", "pyproject.toml"]
detect_folders = []
2、若仅希望在项目根目录(含 .git)下显示,可补充:
detect_folders = [".git"]
四、精简版本号显示内容
默认 version 字段可能包含 pre-release 标签(如 1.2.3-alpha.1),可通过 version_format 参数截取主版本号或去除修饰符。
1、只显示主版本与次版本(如 1.2):
[package]
version_format = "${major}.${minor}"
2、完全去除 pre-release 和 build 元信息,仅保留稳定版本:
version_format = "${raw}"
五、禁用特定包管理器的版本检测
某些场景下需屏蔽某类包管理器(如忽略 Poetry 而保留 npm),可通过 manager 字段白名单机制实现。
1、在 [package] 区块中显式指定允许的 manager 列表:
[package]
manager = ["npm", "yarn"]
2、若列表为空或未设置,则默认检测所有支持的包管理器。











