Определите свойство задачи как одно, которое может изменяться для каждой платформы - PullRequest
0 голосов
/ 25 февраля 2020

Я разрабатываю расширение VSCode, которое предоставляет задачи , как я могу указать, что свойство может изменяться для каждой платформы, например, для задачи "shell" у нас может быть это tasks.json:

"tasks": [
{
    "type": "shell",
    "windows": { "command": "wndCmd.exe" },
    "linux": { "command": "lnxCmd" },
    "osx": { "command": "osxCmd" }
}]

, но для меня это невозможно.

Из примера, приведенного в документации, невозможно создать задачу типа:

"tasks": [
{
    "type": "rake",
    "task": "some",
    "windows": { "file": "winFile" },
    "linux": { "file": "linuxFile" },
    "osx": { "file": "osxFile" }
}]

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Я могу сделать это вручную:

"taskDefinitions": [
    {
        "type": "rake",
        "required": [
            "task"
        ],
        "properties": {
            "task": {
                "type": "string",
                "description": "The Rake task to customize"
            },
            "file": {
                "type": "string",
                "description": "The Rake file that provides the task. Can be omitted."
            },
            "windows: {
                "type": "object",
                "properties": {
                    "file": {
                        "type": "string",
                        "description": "..."
                    }
                }
            },
            "linux: {
                "type": "object",
                "properties": {
                    "file": {
                        "type": "string",
                        "description": "..."
                    }
                }
            },
            "osx: {
                "type": "object",
                "properties": {
                    "file": {
                        "type": "string",
                        "description": "..."
                    }
                }
            }
        }
    }
]
0 голосов
/ 25 февраля 2020

Я не вижу причины, по которой вам нужно было бы делать это для динамически генерируемых задач, которая имеет смысл только для декларативных / stati c объявлений задач.

Просто сгенерируйте версию задачи это подходит для текущей ОС. Вы можете проверить process.platform для этого, см. Также:

...