[ VS Code 插件开发 ] 使用 Task ( 任务 ) 代替 createTerminal (终端) 来执行命令
VSCode 官方自己的插件就是这样执行命令的. 使用体验 比 默认的终端 好太多了.
重用终端,
Shell 集成 ,
按任意键关闭,
任务是否成功,
左侧命令操作 (菜单中功能很多)
等
import * as vscode from 'vscode';
// 执行的命令
let command_str = "npm run dev"
// 工作目录
let cwd = "D:\\Work\\JsProject\\nodejs-demo"
// 创建 Task
const task = new vscode.Task(
{ type: "shell" }, // 任务类型
vscode.TaskScope.Workspace, // 作用域
"我的任务", // 任务名称 (自定义)
"my-app", // 源名称 (自定义)
new vscode.ShellExecution(command_str, {
cwd: cwd, // 执行命令,并设置工作目录 (重要)(起到了切换目录的作用,默认是当前 vscode 的工作目录)
}),
);
// 配置终端行为(关键:重用同一面板)
task.presentationOptions = {
reveal: vscode.TaskRevealKind.Always, // 始终显示终端
panel: vscode.TaskPanelKind.Shared, // 共享终端面板
clear: false, // 不清空历史
};
// 执行任务
vscode.tasks.executeTask(task);