在Jenkins中使用node.js和ANSIcolor插件

时间:2018-11-11 10:12:34

标签: node.js jenkins chalk

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

两者都可以单独工作,但不能结合使用:

节点脚本 我的测试脚本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

3 个答案:

答案 0 :(得分:1)

我刚刚发现问题所在

  • 在作业配置中
  • 查看绑定
  • 选中名为“ Color ANSI Console Output”的复选框

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

答案 1 :(得分:1)

answerRaphael向我指出了正确的方向。这是我针对詹金斯管道脚本(脚本管道)的完整解决方案: :

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

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

答案 2 :(得分:0)

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

export FORCE_COLOR=1

位于我脚本的顶部。

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