cakephp 如何在没有用户交互的情况下运行composer?

j91ykkif  于 2022-11-12  发布在  PHP
关注(0)|答案(2)|浏览(178)

我尝试在cakephp安装上运行composer install,但是它会询问用户是否要设置文件夹权限:
请注意,这只是一个示例。在生产环境中,composer install命令将通过CI或其他方式自动执行:

John:$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
> App\Console\Installer::postInstall
Set Folder Permissions ? (Default to Y) [Y,n]?

这很好,但是有时候我想从命令行指定'yes',这样我的docker安装就不需要交互了,这样我们的部署过程就可以工作了(没有用户参与!)我已经尝试了几种方法,检查了代码,并疯狂地在谷歌上搜索,但都无济于事。
我猜有一个环境变量可以设置为默认的yes / quiet,但我就是找不到它是什么。

jjjwad0x

jjjwad0x1#

请尝试composer install --no-interactioncomposer install -n
根据文档,这会触发Composer在需要交互操作时选择默认选项:

--no-interaction (-n): Do not ask any interactive question.
5ssjco0h

5ssjco0h2#

如前面的答案所述,--no-interaction-n参数是禁用所有composer命令的常规用户交互的正式方法。有关更多信息,请查看可用的全局选项:https://getcomposer.org/doc/03-cli.md#global-options
但是,Composer有时会询问一些需要回答的问题。例如:

composer update

...

In GitDownloader.php line 112:

The .git directory is missing from ..., see https://getcomposer.org/commit-deps for more information

在这些情况下,如果指定了--no-interaction参数,则Composer将失败并显示错误.
为避免--no-interaction错误,可使用yes命令进行救援:

yes | composer update

相关问题