悬停时的描述说:
“指定命令是shell命令还是外部程序。如果省略,则默认为false”
在https://code.visualstudio.com/Docs/editor/tasks中他们在示例中提及它:
“我们想在shell中运行gulp命令(VS Code直接执行它)所以我们使用isShellCommand”
运行isShellCommand = false意味着vsCode不会“直接执行它”,这意味着它将运行“命令”并且不会监听它的任何输出(因为它将它作为外部命令运行?)反过来意味着我们不能使用问题匹配器。
或者,如果设置isShellCommand = true,是否意味着vscode“直接执行它”并将跟踪它并监听生成的输出,以便我们可以使用问题匹配器等与vsCode集成?
考虑以下示例,使用tsc编译typescript项目:
c:\Users\J\Code\vscode-project>where tsc
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\tsc.exe
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\tsc.js
C:\Users\J\AppData\Roaming\npm\tsc
C:\Users\J\AppData\Roaming\npm\tsc.cmd
以下task.json
{
"version": "0.1.0",
// The command is tsc. Assumes that tsc has been installed using npm install -g typescript
"command": "tsc",
// The command is a shell script
"isShellCommand": false,
"args": ["-v"],
"problemMatcher": "$tsc"
}
如果我现在运行任务,它将输出版本:
message TS6029: Version 1.4.0.0
如果我将isShellCommand更改为true,它将输出相同的
message TS6029: Version 1.4.0.0
所以我的想法是,如果我通过将isShellCommand设置为true并调用.exe文件来更改为调用外部程序,它将不会给我任何输出,但确实如此?!。
{
...
"command": "tsc.cmd"
"isShellCommand": true,
}
message TS6029: Version 1.4.0.0
一直试图在vsCode文档中找到有关所有这些的更多信息但找不到任何内容,所以如果有人能指出我除https://code.visualstudio.com/Docs以外的任何资源,我将非常感激。感谢
答案 0 :(得分:2)
找到我正在寻找的答案:https://github.com/Microsoft/vscode-docs/blob/master/docs/editor/tasks_appendix.md
/**
* Specifies whether the command is a shell command and therefore must
* be executed in a shell interpreter (e.g. cmd.exe, bash, ...).
*
* Defaults to false if omitted.
*/
isShellCommand?: boolean;
答案 1 :(得分:0)
如果要在Visual Studio Code中查看控制台输出,则应设置"isShellCommand" = true
。如果您不想在编辑器中查看结果,请将其设置为false
。
我不知道为什么它在你的系统上表现不同。也许这是一个应该归档的错误here。