我正在尝试制作VS Code扩展,旨在帮助人们对我和我正在开发的教育机器人进行编程。我想做一个小命令,将程序员的当前目录scp
指向机器人的ip,然后运行它,以便机器人可以快速启动并运行。我或多或少知道正确的shell脚本来实现它。输入我为扩展名创建的正确命令后,该怎么办?如何在JavaScript / TypeScript中或通过VS Code Extension API运行该Shell脚本?
我尝试了child_process
方法,从我所看到的结果来看,当我想输出某些内容时,它对于ls
之类的东西来说效果很好。当我使用有效的scp
命令尝试该命令时,它引发了错误并且无法正常工作。输出出现在调试控制台中,这对于该扩展名的用户来说是无用的,但它表明child_process
确实确实可以按某些命令的预期工作。
如果无法使用Shell脚本完成此操作,则有一个名为scp2
的模块,其功能与scp
相同,但适用于node.js
应用程序。我在registerCommand
函数中尝试过,但无济于事。引发错误,这次是Running the contributed command: 'extension.upload failed'
。这是代码:
let upload = vscode.commands.registerCommand('extension.upload', () => {
vscode.window.showInformationMessage('Uploading...');
var client = require('scp2');
client.scp('file.txt', {
host: '...',
username: '...',
password: '...', // not the real host, username, or password
path: '/~/code/'
}, function(err: any) {
if(err) {
console.log('Error');
console.log(err);
}
else {
console.log('Success');
}
});
});
我将继续研究这个问题。同时,如果有人看到我看不到的内容,将不胜感激。