Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js中的子进程是否可以保留彩色输出?_Node.js - Fatal编程技术网

Node.js中的子进程是否可以保留彩色输出?

Node.js中的子进程是否可以保留彩色输出?,node.js,Node.js,我正在使用编写我的第一个Node.js命令行工具。我的应用程序中的一个重要步骤是将一些文件和文件夹复制到用户的cwd。我正在使用它来完成这项任务。它运行一系列命令: cd-app-cd-tocwd/app/gulpfile.js和package.json所在的位置 npm安装-安装依赖项 gulp-运行gulp 在功能上,exeq完全按照我的要求来做。它按顺序执行这三个命令并成功地执行。我的问题是exeq不保存彩色输出,因此来自npm install和gulp的日志是纯白色文本,这使得它们很

我正在使用编写我的第一个Node.js命令行工具。我的应用程序中的一个重要步骤是将一些文件和文件夹复制到用户的cwd。我正在使用它来完成这项任务。它运行一系列命令:

  • cd-app
    -cd-to
    cwd/app/
    gulpfile.js和package.json所在的位置
  • npm安装
    -安装依赖项
  • gulp
    -运行gulp
在功能上,exeq完全按照我的要求来做。它按顺序执行这三个命令并成功地执行。我的问题是exeq不保存彩色输出,因此来自
npm install
gulp
的日志是纯白色文本,这使得它们很难解析

到目前为止,我的研究还没有找到一个替代节点包来完成这项工作,也没有找到一个清晰的方法来保存我当前设置的彩色输出。我确实从某人那里得到了线索,这可能是环境的问题,我需要一种方法来告诉exeq它在支持彩色输出的环境中。不幸的是,exeq似乎没有任何选项或参数,所以我不知道如何去做

这是对节点子进程的限制,还是有办法保留彩色输出?

例如,调用一个模块来记录格式化输出<代码>粉笔依次是一个名为的模块,它执行实际的终端类型检测。当
chalk
require()
d时,它会自动使用
支持颜色
来确定有多少种颜色可用

通常,
supports color
会报告当进程作为子进程使用默认的
stdio
选项执行时,没有可用的颜色,因为在这种情况下,stdout不是tty,而是管道。幸运的是,
支持颜色
提供了几个选项来覆盖该检查:

  • 支持颜色
    调用模块以查找
    进程。argv
    条目,如
    --color
    --colors
    等,以强制基本(16)颜色支持。您还可以使用
    --color=256
    强制使用256种颜色,并使用
    --color=full
    等参数强制使用真彩色模式(1600万种颜色)。例如,你应该调用gulp,比如
    gulp--colors
    ,以获得基本的颜色输出

  • 支持颜色
    也支持名为
    FORCE_COLOR
    的环境变量,如果检测到不支持任何颜色,该变量将强制基本颜色支持


对于npm,可以通过两种不同的方式强制颜色输出。追加命令行参数或在环境中设置
NPM\u CONFIG\u COLOR=always
(您可以通过在传递给
child\u process.exec()
/
child\u process.spawn()
的选项中设置
env
来实现这一点。)

这里发生了什么还不太清楚。您说日志“难以解析”,这是否意味着它包含所有用于格式化文本的ANSI转义码?或者你是说文本只是纯文本,你想让任何程序都保留ANSI转义码,而这些转义码通常是从终端直接运行时使用的?@msdex:很抱歉。我的意思是,输出是纯白色文本。为了清晰起见,我编辑了我的问题。谢谢你的帮助!我可以通过将命令更改为
npm install--color always
gulp--color
来解决这个问题。一切又变得五彩缤纷了你好这里是粉笔的维护者。或者设置环境变量
FORCE_COLOR=1