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

TypeScript中如何在program.option中输出红色左中括号'['?

问题:如何在commander.js的program.option中给选项的'['添加红色样式?

你尝试在program.option的选项定义中插入ANSI颜色代码给'['添加红色,但因为commander.js会将选项定义中的[识别为可选参数的语法标识,导致和颜色代码\x1b[里的[冲突,解析失败。

解决方案

方法一:自定义Help输出(推荐)

通过configureOutput方法自定义帮助文本的显示逻辑,在输出时给[和]添加红色样式,完全不影响选项的正常解析:

const { program } = require('commander');

// 正常定义选项,不带颜色代码
program
  .option('--bcc [string]', 'bcc email address.');

// 配置输出,替换帮助文本中的[]为红色
program.configureOutput({
  outputHelp: (helpText) => {
    // 将所有[和]替换为红色样式
    return helpText.replace(/([\[\]])/g, '\x1b[31m$1\x1b[0m');
  }
});

program.parse(process.argv);

方法二:调整颜色代码的位置

如果一定要在选项定义中直接添加颜色,需确保颜色代码不破坏commander的参数解析语法,将颜色代码仅包裹[和]:

const { program } = require('commander');

program
  .option(`--bcc \x1b[31m[\x1b[0mstring\x1b[31m]\x1b[0m`, 'bcc email address.');

program.parse(process.argv);

两种方法都能实现让选项中的括号显示为红色的效果,同时保证程序正常运行。

内容的提问来源于stack exchange,提问作者Brian-Hsu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:15:33