【问题标题】:Remove garbage characters from grunt output从 grunt 输出中删除垃圾字符
【发布时间】:2023-03-20 00:50:02
【问题描述】:

在我的 jenkins 作业中运行 grunt 时,这些未知字符出现在输出日志中。

是否有颜色的控制字符? 我正在用 --no-color 运行 grunt

我如何摆脱这些或让它们显示?

执行时间(2015-01-26 21:01:15 UTC) 并发:dist 5.2s �������������������������� 19% 自动前缀:dist 532ms ���� 2% ngAnnotate:dist 2.1s ������������ 7% cdnify:dist 4.1s ����������������������� 15% uglify:生成 15.5s ���������������������������������������������� ����������������������������� 55% 共 28 秒

【问题讨论】:

    标签: jenkins gruntjs


    【解决方案1】:

    unicode 字符实际上只是百分比的表示,应该呈现为如下所示的实心块。

    Execution Time (2015-02-04 12:10:07 UTC)
    loading tasks  139ms  ▇▇▇▇▇▇▇▇ 4%
    test:server     62ms  ▇▇▇▇ 2%
    env:test       397ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 12%
    mochaTest:src   2.6s  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 81%
    Total 3.2s
    

    这来自一个名为“time-grunt”的插件,它将在您的 Gruntfile.js 中:

    require('time-grunt')(grunt);
    

    只需删除它,您就不会看到它们。

    唯一的问题是您将看不到执行时间。我一直无法找到如何支持这一点...在标准控制台上,您可以将编码 (LANG) 设置为 UTF-8,但我无法在 Jenkins 中找到如何做到这一点。

    【讨论】:

    • 啊.. 这对你有用吗?导出 JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
    • 另外,有没有办法在 jenkins 上禁用它,但允许它在本地构建上运行?
    • 好的,我确实设法通过将 JVM 变量传递给 Tomcat 来解决它,就像您的建议一样。我把它放在 catalina.sh 中: export CATALINA_OPTS="-Dfile.encoding=UTF-8" 我假设你的导出 JAVA_TOOL_OPTIONS 不起作用?关于你的第二个问题......我不确定。我能想到的唯一方法是您的本地构建是否在 Windows 上完成?然后你可以检查环境变量。