create-vue源码学习之 gradient-string 渐变色打印

效果

在使用 create-vue 脚手架时,想实现如下的打印效果。
在这里插入图片描述

探究过程

翻到源码里看到这一行
没错,绿色部分就是告诉我们如何生成的。可以看到引入了 gradient-string 包
在这里插入图片描述
于是乎,我来试试

pnpm i gradient-string    
pnpm i --save-dev @types/gradient-string
import gradient from 'gradient-string'async function init() {console.log()// process.stdout.isTTY 检查终端是否支持彩色输出// process.stdout.getColorDepth() > 8  检查终端的颜色深度。颜色深度通常以位(bit)为单位,8位表示256色,24位表示真彩色。console.log(process.stdout.isTTY && process.stdout.getColorDepth() > 8? banners.gradientBanner: banners.defaultBanner)console.log()let coolGradient = gradient([{ color: '#42d392', pos: 0 },{ color: '#42d392', pos: 0.1 },{ color: '#647eff', pos: 1 }])('Vue.js - The Progressive JavaScript Framework')console.log('🚀 ~ coolGradient:', coolGradient)
}init().catch((e) => {console.error(e)
})

看看打印结果:
在这里插入图片描述

可是我也不想引入包,想直接输出一串 ANSI 转义码,咋办?

先来分析下 create-vue 源码的这段 ANSI 转义码
在这里插入图片描述

在终端中,ANSI 转义码用于控制文本的颜色、背景色、样式等。这些转义码以 \x1B[ 开头,后面跟着一系列参数,最后以 m 结束。例如,\x1B[38;2;66;211;146m 表示设置前景色为 RGB(66, 211, 146)。其中红色标注的部分为我们要打印的文本 “Vue”。

愣是没找到合适的打印方法,突然想起一个骚操作那就是,encodeURI(coolGradient) ,来试试看
在这里插入图片描述
可以看到除了 %1B%5B,其他都一样,那就来个全局替换 %1B%5B --> \x1B[

console.log('🚀 ~ coolGradient:', encodeURI(coolGradient).replaceAll('%1B%5B', '\x1B['))

打印结果
在这里插入图片描述
这里 %20 就是空格啦,同样的思路,全局替换下就可以了。

这时候我们就可以拿到打印的字符串结果,去替换引入的 gradient-string 包啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【IT人生系列二】第一次离职你下定了什么决心

本文承接【IT人生系列一】你的第一份工作激起了多少浪花 转眼间,博主已经在java这趟列车上漂流了18个月之久,再美的风景也会厌倦,我也不是那个初到上海充满干劲的少年,理想与现实的落差让我越发迷茫,我无数次想过放弃…

怎么在PPT插入视频?3个做PPT常用的使用技巧分享!

PPT技巧在日常办公中扮演着重要角色,ppt是一个开放的视觉呈现工具和载体,它支持在页面中插入各种内容媒介,包括文本、图片、视频、音频、矢量素材等,特别是当涉及到PPT插入视频时,它的作用就显得尤为突出。 不过说到p…

ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间

前言 在做数据库设计时,为了方便进行数据追踪,通常会有几个字段是每个表都有的,比如创建时间、创建人、更新时间、更新人、备注等,在存储这些时间时,要么存储 WEB 服务器的时间,要么存储数据库服务器的时间…

计算机三级嵌入式笔记(二)——嵌入式处理器

目录 考点1 嵌入式处理器的结构类型 考点2 嵌入式处理器简介 考点3 ARM处理器概述 考点4 处理器和处理器核 考点5 ARM 处理器的分类 考点6 经典 ARM 处理器 考点7 ARM Cortex 嵌入式处理器 考点8 ARM Cortex实时嵌入式处理器 考点9 ARM Cortex 应用处理器 考点10 AR…

Linux--Socket编程预备

目录 1. 理解源 IP 地址和目的 IP 地址 2.端口号 2.1端口号(port)是传输层协议的内容 2.2端口号范围划分 2.3理解 "端口号" 和 "进程 ID" 2.4理解 socket 3.传输层的典型代表 3.1认识 TCP 协议 3.2认识 UDP 协议 4. 网络字节序 5. socket 编程接…

【数据结构】包装类、初识泛型

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

Selenium之execute_script()方法执行js脚本

目录 场景应用和使用 页面滚动 获取返回值 返回JavaScript定位的元素对象 修改元素属性 弹出提示框 场景应用和使用 在自动化测试中,部分场景无法使用自动化Selenium原生方法来进行测试: 滚动到某个元素(位置) 修改…

Unity UGUI 之 Slider

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.Slider是什么 滑块,由三部分组成:背景 填充条 手柄 填充条就是…

无人机侦察:一维相扫雷达技术详解

一维相扫雷达技术,即相位扫描雷达技术,在无人机侦察中扮演着重要角色。该技术通过在雷达发射天线上施加变化的相位差,使天线波束在固定平面内进行一维扫描,从而实现对目标区域的搜索和跟踪。与传统的机械扫描雷达相比,…

leetcode.nvim使用cookie无法登陆问题

错误描述: 使用力扣 (LeetCode) 全球极客挚爱的技术成长平台 的cookie在neovim上使用leetcode.nvim进行登录会出现curl xxx -D xxxx的报错。 解决方法: 使用LeetCode - The Worlds Leading Online Programming Learning Platform这个网站的cookie进行登…

FTP、NFS、SAMBA系统服务

⼀、rsync托管xinetd 1 、为什么要进⾏服务托管 独⽴服务:独⽴启动脚本 ssh ftp nfs dns ... 依赖服务 : 没有独⽴的启动脚本 rsync telnet 依赖 xinetd 服务(独⽴服务) 2 、如何将 rsync 托管给 xinetd 服务去管理? 第⼀步&am…

普发Pfeiffer TPG300手侧配置安装操作技术资疗包含

普发Pfeiffer TPG300手侧配置安装操作技术资疗包含

React中的无状态组件:简约之美

🎉 博客主页:【剑九 六千里-CSDN博客】 🎨 上一篇文章:【掌握浏览器版本检测:从代码到用户界面】 🎠 系列专栏:【面试题-八股系列】 💖 感谢大家点赞👍收藏⭐评论✍ 引言…

JAVA.4.多态

目录 1.表现形式 2.前提条件 1.有继承关系 2.有父类引用指向子类对象 3.有方法的重写 3.注意事项 代码演示 代码结构 1.表现形式 父类类型 对象名字 new 子类对象(); 2.前提条件 1.有继承关系 2.有父类引用指向子类对象 3.有方法的重写 3.注意事项 1.调用成…

ozon要保证金吗,俄罗斯ozon平台要不要保证金

在跨境电商的广阔舞台上,俄罗斯Ozon平台作为本土领先的B2C电商平台,吸引了众多国内外卖家的目光。然而,对于初入该平台的新手卖家而言,一个常见且关键的问题便是:“Ozon要保证金吗?俄罗斯ozon平台要不要保证…

CTF-NSSCTF题单[GKCTF2020]

[GKCTF 2020]CheckIN 这道题目考察:php7-gc-bypass漏洞 打开这道题目,开始以为考察反序列化,但实际并不是,这里直接用$_REQUEST传入了参数便可以利用了。这里出现了一个eval()函数,猜测考察命…

centos系统mysql主从复制(一主一从)

文章目录 mysql80主从复制(一主一从)一、环境二、服务器master1操作1.开启二进制日志2. 创建复制用户3. 服务器 slave1操作4. 在主数据库中添加数据 mysql80主从复制(一主一从) 一、环境 准备两台服务器,都进行以下操…

js有关深度优先遍历和广度优先遍历

1.Ai智能回答 深度优先遍历和广度优先遍历是图论中两种基本的遍历算法,‌它们分别以不同的方式遍历图中的所有顶点。‌ 深度优先遍历(‌DFS)‌是一种用于遍历或搜索树或图的算法。‌这个算法会尽可能深地搜索图的分支。‌在图中,‌…

Elasticsearch-RestAPI --学习笔记

RestAPI ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 官方文档地址: Elasticsearch Clients | Elastic 以下关于RestAPI 的说明都是基于老版本客户端 初始化RestClient 1&…

学习华为IPD流程黑话2.0

目录 1、内容简介 2、概念六:管道管理 3、概念七:业务计划 4、概念八:IPMT 的投资活动 5、概念九:BETA、ESS、ESP 作者简介 1、内容简介 学习任何新事物都是从概念开始的。 以我个人最近遇到的一个事为例: 前…