Visual studio code 将Visual Studio代码配置为具有基于文件扩展名的默认生成任务

Visual studio code 将Visual Studio代码配置为具有基于文件扩展名的默认生成任务,visual-studio-code,vscode-settings,Visual Studio Code,Vscode Settings,我想知道是否有一种方法可以根据文件扩展名定义VSCode的默认构建任务 在Python代码的某个文件夹中工作时,我定义了以下构建任务: { "version": "0.1.0", "command": "python", "isShellCommand": true, "showOutput": "always", "args": ["${file}"] } 然后,如果下次我转到另一个Python文件夹,我必须重新定义它 是否可以将VSCode配置为这样

我想知道是否有一种方法可以根据文件扩展名定义VSCode的默认构建任务

在Python代码的某个文件夹中工作时,我定义了以下构建任务:

{
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "showOutput": "always",
    "args": ["${file}"]
}
然后,如果下次我转到另一个Python文件夹,我必须重新定义它

是否可以将VSCode配置为这样一种方式:如果它将当前文件检测为Python脚本,那么它将自动定义上述构建任务


提前感谢您的帮助

这是可能的,但它需要(除非有人已经用Python的任务提供程序编写了一个)。自1.14.0以来,有一个新的API允许扩展动态提供任务。看看这本书


另外,在这种情况下,扩展可能也会起作用。但它不使用任务系统。

更新最新vscode

下面将创建一个默认的“构建”脚本,以便您可以使用键盘快捷键构建项目。(下面是javascript项目,但显示了其他语言/项目的概要。)

1)假设在项目的根目录下有一个名为“build.js”的脚本

2)在项目(工作区)的根目录中创建一个名为“tasks.json”的文件,其内容如下:

// tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "mybuildscript", // use same name as in package.json
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
     ]
}
3)在package.json中,添加“脚本”,如下所示:

// package.json
{
    "name": "my",
    "version": "1.0.0",
    "description": "",
    "scripts": {
        "mybuildscript": "node ./build.js"
    },
    "dependencies": {
        "myfs": "^1.0.22"
    }
}