# 命令行输出
# 使用控制台模块的基础输出
以最基础、最常用的console.log()
为例。可传入任何对象,最终以字符串的方式展示在控制台。
可传入多个参数。例如:
const x = 'x'; const y = 'y;' console.log(x, y); $ x y
Copied!
也可以通过传入变量和格式说明符来格式化用语。例如:
console.log('你好%s,今天是星期%d', 'Jerry', );
Copied!
- %s 会格式化变量为字符串
- %d 会格式化变量为数字
- %i 会格式化变量为其整数部分
- %o 会格式化变量为对象
例如:
console.log('%o', Number);
Copied!
# 为输出着色
可以使用转义序列
在控制台中为文本的输出着色。 转义序列是一组标识颜色的字符。
例如:
console.log('\x1b[33m%s\x1b[0m', '你好'); # 会在控制台出入黄色字体的你好
Copied!
也可以使用第三方库chalk
为输出着色,它还有助于其他样式的设置(例如使文本变为粗体、斜体或带下划线)。
可以使用npm install chalk
进行安装,然后就可以使用它:
const chalk = require('chalk'); console.log(chalk.yellow('你好'));
Copied!
与尝试记住转义序列相比,chalk.*
相对方便许多,也能提高代码可读性。
# 创建进度条
Progress
是一个很棒的软件包,可在控制台中创建进度条。 使用npm install progress
进行安装。
以下代码段会创建一个 10 步的进度条,每 100 毫秒完成一步。 当进度条结束时,则清除定时器:
const ProgressBar = require('progress') const bar = new ProgressBar(':bar', { total: 10 }) const timer = setInterval(() => { bar.tick() if (bar.complete) { clearInterval(timer) } }, 100)
Copied!
也可用来展示文件下载进度:
var ProgressBar = require('progress'); var https = require('https'); var req = https.request({ host: 'www.myjerry.cn', port: 443, path: '/_nuxt/7915dad877fcafaf1273.js' }); req.on('response', function(res){ var len = parseInt(res.headers['content-length'], 10); let fileName = '7915dad877fcafaf1273.js'; let size = '269KB'; var bar = new ProgressBar(`downloading ${fileName} [:bar] :rate/bps ${size} :percent :etas`, { complete: '=', incomplete: '-', width: 100, total: len }); res.on('data', function (chunk) { bar.tick(chunk.length); }); res.on('end', function () { console.log('\n', '完成'); }); }); req.end();
Copied!