在 VS Code 自定义中使用 args 的问题 tasks.json
Problem of using args in VS Code custom tasks.json
因此,在 .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
在 tasks.json
中的工作原理?你能告诉我如何正确使用 args 吗?
谢谢
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
中,然后使用空格引用可能有点不稳定。
因此,在 .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
在 tasks.json
中的工作原理?你能告诉我如何正确使用 args 吗?
谢谢
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
中,然后使用空格引用可能有点不稳定。