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

问题描述 投票:0回答:3

我想知道是否有办法根据文件扩展名定义 VS Code 的默认构建任务。

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

{
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "showOutput": "always",
    "args": ["${file}"]
}

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

是否可以配置 VS Code,如果它检测到当前文件为 Python 脚本,那么它会自动定义上述构建任务?

visual-studio-code
3个回答
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 中,添加“脚本”:

// 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 扩展也可能在这种情况下发挥作用。但它不使用任务系统。


0
投票

例如,在任务定义中,

"group": {
   "kind": "build",
   "isDefault": "**/*.txt",
},

另请参阅全局模式文档。前任。你可以做类似

**/*.{txt,md}
的事情。

如果您希望该任务成为工作区任务,请将其放入

${workspaceFolder}/.vscode/tasks.json
。如果您希望它成为全局/用户任务,请将其放入全局任务文件中(在
命令面板
中运行Tasks: Open User Tasks)。

© www.soinside.com 2019 - 2024. All rights reserved.