在我的一个项目中,我创建了一个NodeJS脚本。现在我想创建一个VSCode扩展。
如何将此脚本链接到我的自定义扩展中的命令?
该脚本应包含在扩展包中。
我尝试从终端运行脚本,但它无法从我的包中加载脚本。
const terminal = vscode.window.createTerminal( 'My Node Script' );
terminal.show();
terminal.sendText( 'npm run myscript', true );
字符串
我如何才能做到这一点?
--更新02/01/2024
x1c 0d1x的数据
只要我将Git bash设置为Windows中的默认终端,彩色输出似乎就可以工作,但我不想显示终端中显示的实际echo
命令。
基本上,我运行的脚本是这样的:
- Blue color log line: Starting script..
- Terminal command: abc
- Blue color log line: Completed step 1
- Terminal command: xyz
- Blue color log line: Completed step 2
- .. etc etc
- Green color log line: Completed
型
使用终端命令和echo命令,最好从输出中隐藏,因为它看起来像这样:
的
当它等待脚本运行的命令时,它实际上显示脚本完全完成,但当脚本到达下一部分时,它会继续发送更多命令(sendText()
)。
所以脚本不是在单个终端执行中执行的
我希望达到的目标:
我得到的最接近的是从https://askubuntu.com/a/1384471使用sendTerminal( 'stty -echo' )
。它不再显示输入文本,但仍然显示换行符,并在每个命令后返回终端。
1条答案
按热度按时间a64a0gku1#
我终于找到了解决办法
通过将Node脚本作为命令包含到扩展中,然后创建一个新的终端,使用
child_process
运行命令并将彩色输出文本发送到终端。要使终端日志看起来类似于运行Node脚本,并以颜色显示,请参见下文。
的数据
使用
stty -echo
不显示命令输入字符https://askubuntu.com/a/1384471
使用
export PS1=''
不显示提示头https://askubuntu.com/a/16729/1569633的
使用
echo -n
(和-e
用于颜色) 当echo
处理文本时,以避免追加新行