3

我想用 Visual Studio Code 任务编译我的 Stylus 文件,但该命令需要 stdin/stdout 重定向(使用<and >):

stylus --compress < main.styl > main.css

这不起作用,因为行为似乎与外壳不同。

尝试

{
    "version": "0.1.0",
    "tasks": [
        {
            "taskName": "styles",
            "isBuildCommand": true,
            "isShellCommand": true,
            "echoCommand": true,
            "command": "stylus",
            "args": [
                "--compress",
                "<",
                "main.styl",
                ">",
                "main.css"
            ]
        }
    ]
}

抓住

running command$ stylus --compress < main.styl > main.css
/usr/local/lib/node_modules/stylus/bin/stylus:641
    if (err) throw err;
             ^

Error: ENOENT: no such file or directory, stat '<'
4

1 回答 1

0

据我所知,没有办法从这里描述的任务模式重定向标准输入和标准输出。

要进行重定向,您需要编写一个小实用程序来接受可执行文件的名称、输入文件、输出文件和任何其他参数。然后,此实用程序 EXE 文件将执行您的“手写笔”,将其输入和输出重定向到实用程序可执行文件中指定的文件。如果您的实用程序 EXE 文件被调用redirect.exe,您的命令行将是

redirect.exe stylus.exe main.styl main.css --compress

您的 tasks.json 将如下所示:

…
"command": "redirect.exe",
"args": [
    "stylus.exe", "main.styl", "main.css", "--compress", "--etc"
]
于 2018-10-01T23:33:13.640 回答