前言
上次简单的说了下chalk,这次说一下它的其中一个小兄弟terminal-link开源库。这个库主要是用来在终端创建可点击的链接,操作很简单。
前端项目中使用
和chalk库不同,vuecli脚手架创建的vue项目支持这个库的使用,在前端项目使用方式直接上代码:
npm install terminal-link // 安装,会默认安装最新版3.0.0
// 使用
import terminalLink from 'terminal-link';
const link = terminalLink('My Website', 'https://sindresorhus.com');
console.log(link);
在浏览器终端中打印效果如下所示,括号里的链接是可以点击的,点击后浏览器会新开一个页面,并打开这个链接地址。
node中使用
这个库在node中使用时,要注意版本,最新版使用的是ESModule导入导出,所以要安装低版本的。
我直接安装了2.x版本的。
npm install terminal-link@2.x
const terminalLink = require('terminal-link')
const link = terminalLink('My Website', 'https://cn.bing.com/');
console.log(link);
效果如上所示,ctrl+点击 也是直接在浏览器中打开。突然想到如果将这个库和上次说的chalk库结合使用呢,想到就试一下。
结合chalk使用
直接上代码:
const terminalLink = require('terminal-link')
const chalk = require('chalk')
const link = terminalLink('My Website', chalk.rgb(40, 156, 193).visible('https://cn.bing.com/'));
console.log(link);
看效果图,是不是感觉和vuecli创建的vue项目跑起来后很像了,就是那个括号我不知道怎么去掉。
改变打印样式
我就去看了这个库的源码的index.js,源码代码量很少,主要就引入了两个库并使用。
在源码中看到了第三个参数对象的使用方法,感觉第三个参数的返回值可以控制我最终拿到的值,就试了一下。
const terminalLink = require('terminal-link')
const chalk = require('chalk')
const link = terminalLink('My Website', chalk.rgb(40, 156, 193).visible('https://cn.bing.com/'), {
fallback: (text, url) => `- ${text}: ${url}`
});
console.log(link);
这不是和vuecli创建的vue项目跑起来后很像了,嘿嘿。
总结
多个开源库的结合使用还是挺好玩的,当然我也只会使用开源库,源码啥的都是看不懂的。还有什么好玩又简单的库可以推荐一下。