with own nodejs node inquirer create commander cli command-line node.js command-line-interface

command-line - own - nodejs cli



Probar si la salida real es un terminal o no en node.js (1)

Estoy escribiendo una interfaz de línea de comandos para uno de mis programas, y me gustaría usar la salida coloreada de winston si es apropiado (la salida es un terminal y no se redirige a un archivo).

En bash se puede hacer con la prueba -t , como lo indica correctamente la respuesta de SO . Pero estoy buscando la alternativa de node.js para probar esto.


De manera similar a los ejemplos de bash a los que se vincula, Node tiene el módulo ''tty'' para lidiar con esto.

Para verificar si la salida está redirigida, puede usar el método ''isatty''. Docs aquí: http://nodejs.org/docs/v0.5.0/api/tty.html#tty.isatty

Por ejemplo, para verificar si la salida estándar está redirigida:

var tty = require(''tty''); if (tty.isatty(process.stdout.fd)) { console.log(''not redirected''); } else { console.log(''redirected''); }

Actualizar

En las nuevas versiones de Node (a partir de la versión 0.12.0), la API proporciona una marca en la salida estándar para que pueda hacer esto:

if (process.stdout.isTTY) { console.log(''not redirected''); } else { console.log(''redirected''); }