3

我想在由 node.js 生成的 jenkins 中显示彩色输出

两者分开工作,但不结合:

节点脚本我的测试脚本 test.js:

console.log(require("chalk").red("Node Red"))

shell中调用测试脚本有效:

node test.js => OK

在jenkins中调用彩色 shell 脚本有效:

echo -e "\033[31mShell Red\033[0m" => OK

但是在jenkins中调用节点脚本不会显示任何颜色:

node test.js => No Color, when executed in jenkins
4

3 回答 3

2

拉斐尔回答为我指明了正确的方向。这是我对 Jenkins 流水线脚本(脚本化流水线)的完整解决方案::

node {
    ansiColor('xterm') {
        withEnv(['FORCE_COLOR=3']) {
            ...
            sh "some-node-script-using-chalk.js"
            ...
        }
    }
}

如果您使用的是声明式管道,请参阅https://jenkins.io/doc/pipeline/tour/environment/如何在声明式管道脚本中设置环境变量。

于 2020-04-08T07:19:25.047 回答
2

对我来说,它在放置时起作用

export FORCE_COLOR=1

在我的脚本的顶部。

请参阅https://github.com/chalk/supports-color#info

于 2019-08-27T17:55:44.140 回答
1

我刚刚发现了我的问题:

  • 在作业配置中
  • 看看绑定
  • 选中名为“颜色 ANSI 控制台输出”的复选框

它有效(对我来说......)

于 2019-03-02T16:35:41.740 回答