如何解决如何避免 Node.js 的 readline 炸毁 Intellij 的 IDEA 终端?
我有一个使用 puppeteer 下载浏览器的简单 NPM 脚本。下载回调函数使用 Node.js 的 readline 显示进度:
const puppeteer = require('puppeteer')
const readline = require('readline');
const rl = readline.createInterface({input: process.stdin,output: process.stdout});
await puppeteer
.createBrowserFetcher(..)
.download(puppeteer._preferredRevision,function (downloadBytes,totalBytes) {
const percent = ..
readline.cursorTo(process.stdout,0)
rl.write(`Downloading browser ${percent.toString().padStart(5)}%`)
})
}
这在我的 Mac 终端 (TERM=xterm-256color) 中按预期工作,其中一行类似于
Downloading browser 8%
不断重绘(更新)以显示下载进度。但是,在 IntelliJ 的终端中运行相同的 Node.js 脚本,我得到了一个(几乎)无穷无尽的长字符串,如
.. 51%Downloading browser 51%Downloading browser 51%Downloading browser 51%Downloading browser 51%Downloading browser ..
最终需要 100% CPU 来更新进度字符串。不用说,下载需要无穷无尽的时间。
有没有办法让 readline 在 IntelliJ 中很好地工作?或者我可以更改 Intellij 中的默认 TERM(除了接触 .profile 和同志)?
一些版本指针,以防万一:
- IntelliJ:2021.1
- 节点:v15.2.1
- NPM:7.10.0
- Mac:MacOS Catalina
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。