You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart调用brew outdated仅获包名,如何获取版本信息?

解决Dart调用brew outdated仅获取包名的问题

问题原因

brew outdated会根据输出环境自动调整格式:当输出到终端时显示完整版本对比信息,若输出被程序(比如Dart的Process)捕获,会默认切换为简洁模式,只输出包名列表。

解决方案

有两种可靠方式可以获取完整的版本对比数据:

1. 用--verbose参数强制输出详情

直接给brew outdated添加--verbose参数,强制让它输出包含版本对比的完整内容:

import 'dart:io';

void main() async {
  var processResult = await Process.run('brew', ['outdated', '--verbose']);
  print(processResult.stdout.toString());
}

2. 模拟终端环境

通过设置TERM环境变量,让brew判定输出目标为终端,从而保留完整格式:

import 'dart:io';

void main() async {
  var processResult = await Process.run(
    'brew',
    ['outdated'],
    environment: {'TERM': 'xterm'},
  );
  print(processResult.stdout.toString());
}

验证

以上两种方法在Dart SDK 3.0.0-76.0.dev (macos_arm64)环境下均能生效,输出内容会包含类似gnutls (3.7.8) < 3.7.8_1的版本对比信息。

内容的提问来源于stack exchange,提问作者David Soroko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:35:30