【问题标题】:Problem of using args in VS Code custom tasks.jsonVS Code自定义tasks.json中使用args的问题
【发布时间】:2020-12-06 08:40:21
【问题描述】:

所以,在 .vscode/tasks.json 的任务数组中,我有一个任务:

{
      "label": "buildReleaseIos",
      "type": "shell",
      "command": "flutter build ios -t lib/main_prod.dart --dart-define=DART_DEFINE_APP_NAME=App Name --dart-define=DART_DEFINE_APP_SUFFIX=.myapp"
}

此任务有效,我能够正确执行。

问题是,如果我将 --dart-define 从命令移动到 args 数组(我认为这是更好的做法),如下所示:

{
      "label": "buildReleaseIos",
      "type": "shell",
      "command": "flutter build ios -t lib/main_prod.dart",
      "args": [
        "--dart-define=BCP_DART_DEFINE_APP_NAME=App Name",
        "--dart-define=BCP_DART_DEFINE_APP_SUFFIX=.myapp",
      ]
}

有这个错误:

> Executing task: 'flutter build ios -t lib/main_prod.dart' '--dart-define=DART_DEFINE_APP_NAME=App Name' --dart-define=DART_DEFINE_APP_SUFFIX=.myapp <

/bin/bash: flutter build ios -t lib/main_prod.dart: No such file or directory
The terminal process "/bin/bash '-c', ''flutter build ios -t lib/main_prod.dart' '--dart-define=DART_DEFINE_APP_NAME=App Name' --dart-define=DART_DEFINE_APP_SUFFIX=.myapp'" terminated with exit code: 127.

但是,我在 launch.json 中也有类似的 args 用法,效果很好:

{
      "name": "Flutter Debug Prod",
      "request": "launch",
      "type": "dart",
      "program": "lib/main_prod.dart",
      "args": [
        "--dart-define=DART_DEFINE_APP_NAME=App Name",
      ],
}

也许我对args in tasks.json 的工作方式有误?你能告诉我如何正确使用args吗?

谢谢

【问题讨论】:

    标签: flutter visual-studio-code vscode-tasks


    【解决方案1】:

    bash 中的翻译应该是这样的

    "/bin/bash '-c', 'flutter' 'build' 'ios' '-t' 'lib/main_prod.dart' '--dart-define=DART_DEFINE_APP_NAME=App Name' '--dart-define=DART_DEFINE_APP_SUFFIX=.myapp'
    

    这意味着您需要在program 中使用flutter 以及将其他所有内容作为args 的单独元素,或者您可以将所有内容放在program 中,但是空格引用可能有点不靠谱。

    【讨论】:

    • 是的,最后我将所有内容都放在了command 属性中。但这有点奇怪,在启动和任务之间有两种不同的行为。我知道为什么会这样。
    • 如果 args 存在,program = "program to run" 和 args 是该命令的单独 args。如果 args 不存在,program = line to hand to shell,其中可能包括 args 与 shell 的无数规则分开 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    相关资源
    最近更新 更多