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

如何以规范格式记录ng命令的输出内容?

解决Angular CLI命令日志中ANSI控制码乱码的问题

你遇到的[33m、[ESC]这类内容其实是ANSI颜色控制转义码——终端用这些代码来给输出添加颜色高亮,但当你把输出重定向到日志文件时,这些控制码会被直接写入文件,导致文本编辑器里显示乱码。下面给你几个实用的解决办法:

方法1:直接禁用Angular CLI的颜色输出

这是最省心的方案,直接让CLI输出不带颜色控制码:

  • 执行命令时添加--no-color参数:
    ng build --prod --no-color > build.log
    ng test --no-color > test.log
    
  • 如果不想每次都加参数,可以临时设置环境变量:
    • 在CMD里:set NG_CLI_ANSI_COLORS=false
    • 在PowerShell里:$env:NG_CLI_ANSI_COLORS="false"
      设置完后,当前会话里的所有ng命令都会默认禁用颜色输出。

方法2:过滤已生成输出中的转义码

如果已经有带乱码的日志,或者你需要保留终端颜色但同时生成干净的日志,可以用命令过滤掉ANSI控制码:

  • PowerShell里可以直接用正则替换:
    ng build --prod | ForEach-Object { $_ -replace '\x1b\[[0-9;]*m', '' } > build.log
    
  • CMD里可以借助第三方工具(比如ansifilter),不过相比之下还是方法1更简便。

方法3:配置Karma禁用颜色(针对ng test)

如果是ng test的Karma输出带乱码,还可以直接修改Karma的配置文件karma.conf.js,找到colors选项并设为false:

module.exports = function(config) {
  config.set({
    // 其他配置项...
    colors: false,
    // 其他配置项...
  });
};

这样Karma的测试输出就不会包含颜色控制码了。

内容的提问来源于stack exchange,提问作者srikanth peetha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:48:57