我如何在管道node.js进程中获得终端大小
How can I get terminal size in a piped node.js process?
我使用Grunt启动单元测试框架(Intern),该框架最终为另一个node.js进程提供管道,然后我使用Charm将结果输出到屏幕。我不得不从Grunt配置选项中传递终端大小信息,但这有点混乱,我想尝试从管道进程中获取终端大小,但标准process.stdout。cols/getWindowSize是不可用的,因为管道进程没有注册为TTY(尽管Charm可以很好地使用它)。
有什么建议吗?
EDIT只是在这里明确…Grunt JavaScript文件在主node.js进程中运行,但我试图从中检索此信息的文件(以及我因此运行人们建议的命令的地方)是在派生的子进程中。
试试这些:
-
tput cols
告诉您列的数量。 -
tput lines
告诉您行数 -
echo -e "lines'ncols"|tput -S
获取线条和颜色
有stty, from coretils:
$ stty size #60 120 <= sample output
当在终端中运行下面的代码时打印出颜色:
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("tput cols", puts);
pty.js
模块可以使子终端像普通终端一样工作。
var pty = require('pty.js');
var term = pty.spawn('bash', [], {
name: 'xterm-color',
cwd: process.env.HOME,
env: process.env
});
term.on('data', function(data) {
console.log(data);
});
term.write('ls'r');
term.resize(100, 40);
term.write('ls /'r');
console.log(term.process);
相关文章:
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- http.listen()在运行时接受终端命令
- 节点webkit应用程序与终端通话
- 节点分叉子进程并获取它's错误
- 子进程未接收消息
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 我想放慢html中进程栏的速度
- 派生进程的stdout在管道传输时工作异常
- 如何解决'窗口未定义'终端上的节点JS出错
- 定时Ajax进程在用户离开页面后继续
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 从已经运行的进程打开chrome扩展的背景页
- 用于本地主机上进程间通信的Javascript中的UDP
- 如何使用粉笔终端字符串样式做得正确
- AWS Lambda上的权限问题,可以't派生子进程
- PM2 在运行时更改集群进程大小
- 不同进程之间共享Node.js环境
- 我如何在管道node.js进程中获得终端大小
- 如何给终端的子进程控制,在Node.js
- Node.js部署终端进程消失