提问人:grazdev 提问时间:6/17/2022 更新时间:6/19/2022 访问量:390
如何在带有选项的composer.json中运行自定义命令 create?
How to run a custom command create in composer.json with options?
问:
我想从项目 B 在项目 A 中使用 Codeception bin 文件,因此在项目 B 的文件中,我添加了以下脚本:composer.json
"codecept": "../projectA/vendor/bin/codecept"
有了这个,我可以从项目 B 运行一个命令,例如:
composer codecept bootstrap
但是,如果我添加一个可以与命令一起使用的选项,例如:bootstrap
composer codecept bootstrap --empty
Composer 抛出以下错误:
[Symfony\Component\Console\Exception\RuntimeException]
The "--empty" option does not exist.
这是我第一次玩自定义命令,所以我不确定我错过了什么。
答:
3赞
grazdev
6/17/2022
#1
好的,我找到了,在传递选项之前必须使用额外的选项,如下所示:--
composer codecept bootstrap -- --empty
1赞
hakre
6/19/2022
#2
您看到的错误来自Symfony控制台,它是Composer的依赖项。
潜在的问题是 Symfony Console 中的命令行参数解析器存在缺陷(阅读:有限)。
在许多情况下,您可以通过使用参数分隔符并在后面添加命令参数来解决此问题,但并非全部。例如:--
composer codecept bootstrap -- --empty
但是,这仅适用于Symfony控制台中不存在的命令行选项作为全局参数。例如,这不适用于 ,它将显示作曲家的帮助文本。或者,或者等等等等,例如:--help
--version
--quiet
composer exec codecept-the-foo-baloo bootstrap -- --version
Composer version ...
甚至不能安装命令/包。正如所写的那样,这是有缺陷的,并引入了这样和类似的限制。
评论