资讯专栏INFORMATION COLUMN

Node模块--anser

pubdreamcc / 658人阅读

摘要:前景色,文字的颜色背景色可以指定第二个参数这里从颜色值变成了类名将转成。可以指定第二个参数,来将颜色值转成类名补充清空控制台可以使用下面的方式上面的内容也是终端控制符的使用。

1.资源地址

npm地址:https://www.npmjs.com/package/anser

GitHub地址:https://github.com/IonicaBizau/anser

下面的内容只是对这个包做一个简单的了解,如果要详细了解,建议查看官网。

另外,需要知道,终端中的显示的颜色都是已经固定好的,不同颜色的表示可以使用终端控制符来实现。

shell脚本中echo显示内容带颜色

Linux 终端控制符

转义及编码(u, x)

需要说明的是:下面三个是等价的,第一个是八进制;第二个是十六进制;第三个是 Unicode-16 的显示方式

33
x1b
u001b
2.包的作用

anser 包的作用:简单的ANSI序列(终端控制符)转换工具。

将ANSI序列转成HTML元素

转成JSON数据输出

3.安装 3-1 npm 安装
$ npm install anser --save-dev
3-2 yarn 安装
$ yarn add anser --dev
4.使用

常用的方法没有几个,下面就列出三个较常用的。

4-1 ansiToText

ansiToText 将 ANSI 转成字符串输出。

const Anser = require("anser");
const txt = "u001b[38;5;196mHellou001b[39m u001b[48;5;226mWorldu001b[49m"; // 这个地方不理解的话,一定要看看上面的关于终端控制符的链接
console.log(Anser.ansiToText(txt));

// "Hello World"
4-2 ansiToJson

ansiToJson 将 ANSI 转成 JSON 格式是数据。

const Anser = require("anser");
const txt = "u001b[38;5;196mHello";
console.log(Anser.ansiToJson(txt));
[ { content: "",
    fg: null,
    bg: null,
    fg_truecolor: null,
    bg_truecolor: null,
    clearLine: false,
    decoration: null,
    was_processed: false,
    isEmpty: [Function: isEmpty] },
  { content: "Hello",
    fg: "255, 0, 0",                // 前景色,文字的颜色
    bg: null,                       // 背景色
    fg_truecolor: null,
    bg_truecolor: null,
    clearLine: false,
    decoration: null,
    was_processed: true,
    isEmpty: [Function: isEmpty] } ]

可以指定第二个参数:

const Anser = require("anser");
const txt = "u001b[38;5;196mHello";
console.log(Anser.ansiToJson(txt));
[ { content: "",
    fg: null,
    bg: null,
    fg_truecolor: null,
    bg_truecolor: null,
    clearLine: false,
    decoration: null,
    was_processed: false,
    isEmpty: [Function: isEmpty] },
  { content: "Hello",
    fg: "ansi-palette-196",              // 这里从颜色值变成了类名
    bg: null,
    fg_truecolor: null,
    bg_truecolor: null,
    clearLine: false,
    decoration: null,
    was_processed: true,
    isEmpty: [Function: isEmpty] } ]
4-3 ansiToHtml

ansiToHtml 将 ANSI 转成 HTML。

const Anser = require("anser");
const txt = "u001b[38;5;196mHello";
console.log(Anser.ansiToHtml(txt));
Hello

可以指定第二个参数,来将颜色值转成类名:

const Anser = require("anser");
const txt = "u001b[38;5;196mHello";
console.log(Anser.ansiToHtml(txt, { use_classes: true }));
Hello
5.补充

清空控制台可以使用下面的方式:

process.stdout.write(
  process.platform === "win32" ? "x1Bc" : "x1B[2Jx1B[3Jx1B[H"
)

上面的内容也是终端控制符的使用。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89467.html

相关文章

  • MIME 一览

    摘要:整理一帖,备查常用类型类型大全 整理一帖,备查 常用类型 MIME Type / Internet Media Type File Extension Name application/msexcel *.xls *.xla Microsoft Excel Dateien application/mshelp *.hlp *.chm Microsoft Windo...

    Awbeci 评论0 收藏0
  • Node】前后端模块规范与模块加载原理

    摘要:例如指定一些依赖到模块中实现规范的模块化,感兴趣的可以查看的文档。 CommonJS 定义了 module、exports 和 require 模块规范,Node.js 为了实现这个简单的标准,从底层 C/C++ 内建模块到 JavaScript 核心模块,从路径分析、文件定位到编译执行,经历了一系列复杂的过程。简单的了解 Node 模块的原理,有利于我们重新认识基于 Node 搭建的...

    jsyzchen 评论0 收藏0
  • Node.js随手笔记(一):node简介与模块系统

    摘要:模块系统为了让的文件可以相互调用,提供了一个简单的模块系统。但是,没有模块系统。包管理简称,是随同一起安装的包管理工具。输入命令,根据提示配置包的相关信息,生成相应的。以上所描述的模块载入机制均定义在模块之中。 Node.js简介 首先从名字说起,网上查阅资料的时候会发现关于node的写法五花八门,到底哪一种写法最标准呢?遵循官方网站的说法,一直将项目称之为Node或者Node.js。...

    TNFE 评论0 收藏0
  • nodejs笔记-模块机制

    摘要:模块中定义的全局变量只作用于该文件内部,不污染其他模块。由纯编写的部分称为内建模块,例等模块部分使用编写。兼容多种模块规范检测是否为或者检测是否为或环境定义为普通模块将模块执行结果挂载在对象下 1.为什么要CommonJS规范 javascript存在的缺点 没有模块系统 标准库比较少 没有标准接口 缺乏包管理系统 CommonJS规范的提出,弥补了javascript没有标准的缺...

    lscho 评论0 收藏0
  • 结合源码分析 Node.js 模块加载与运行原理

    摘要:但是,对于模块化背后的加载与运行原理,我们是否清楚呢。源码结构一览这里使用版本源码为例子来做分析。下面就来分析的原理。至此就基本讲清楚了核心模块的加载过程。所以的内建模块会被放入一个叫做的数组中。 原文链接自我的个人博客:https://github.com/mly-zju/blog/issues/10 欢迎关注。 Node.js 的出现,让 JavaScript 脱离了浏览器的束缚,...

    W_BinaryTree 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<