根据文件扩展名配置Visual Studio Code的默认构建任务

6
我想知道是否有一种方法可以根据文件扩展名为VSCode定义默认的构建任务。
在处理Python代码文件夹时,我定义了以下构建任务:
{
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "showOutput": "always",
    "args": ["${file}"]
}

如果下次我去另一个Python文件夹,我必须重新定义它。

是否可以配置VSCode,以便如果检测到当前文件为Python脚本,则自动定义上述构建任务?

提前感谢您的帮助!


一种可能的实现方式是创建相关任务和键绑定,将条件添加到键绑定 "when": "editorLangId == python" 中。Mark answered Oct 7, 2020 at 17:01。软件:VSCode 1.66。 - dank8
这个回答解决了您的问题吗?我能在VS Code中为多种语言配置task.json文件吗? - dank8
@丹 谢谢。不幸的是,我无法回答你的问题。我很久没有使用这个功能了,我真的不记得我当时问了什么@@。 - f10w
截至今天(vscode v1.71.2),在菜单“终端>配置默认构建任务...”中有一个快捷方式,然后您可以设置要运行的首选默认任务(例如npm run dev),您可以使用默认的键绑定Ctrl+Cmd+B在Mac上运行它。 - Ibrahim.H
2个回答

9

更新最新的VSCode

以下将创建一个默认的“构建”脚本,以便您可以使用键盘快捷方式构建您的项目(下面是针对JavaScript项目的示例,但显示其他语言/项目的一般大纲)。

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

(2) 检查您在项目的根目录下是否有一个名为“.vscode”的隐藏文件夹。如果没有,请创建它。

(3) 在项目(工作区)的“.vscode”文件夹中创建一个名为“tasks.json”的文件,并写入以下内容:

// .vscode/tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "mybuildscript", // use same name as in package.json
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
     ]
}

(4) 在你的 package.json 文件中,添加以下 "scripts":

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

我创建了一个基本的vscode扩展程序,可以为您完成所有这些操作: https://marketplace.visualstudio.com/items?itemName=gieson.make-build-task

该扩展程序并不完美(无法涵盖项目/工作区可能配置的所有方式),但它是一个很好的起点。

这是存储库: https://github.com/bobtherobot/make-build-task


1

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

或者,Code Runner扩展在这种情况下也可以胜任。但它不使用任务系统。


请问,如何在VS Code中定义名为"tsc: build - tsconfig.json"的任务? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接