如何从 Node.js 设置终端选项卡标题?

How do you set the terminal tab title from Node.js?

我知道这可以通过终端手动完成:

echo -n -e "3]0;My terminal tab title[=11=]7"

我尝试将其放入 console.logprocess.stdout.write 中并尝试转义,但无法正常工作。

为了节省阅读本文的人一些时间,这里有一个函数将在严格模式下执行此操作:

function setTerminalTitle(title)
{
  process.stdout.write(
    String.fromCharCode(27) + "]0;" + title + String.fromCharCode(7)
  );
}

有节点库:node-bash-title

节点中的用法

要安装库:

npm install node-bash-title --save

在您的脚本中:

const setTitle = require('node-bash-title');
setTitle('  Server');

NPM 脚本中的用法

这个包还提供了一个可执行脚本。你可以在你的 npm 脚本中使用它。例如:

"scripts": {
    "start:dev": "set-bash-title server && node server/app.js"
    "start:prod": "node server/app.js"
 },

因此您可以从代码中删除标题脚本。此外,仅当您想设置标题时才设置标题(在开发模式下)。在生产模式下,您可能不想设置标题,因为您的脚本可能不会在 XTerm 中执行:)