如何在作曲家安装时跳过建议

Web*_*net 5 composer-php

当我运行composer install它时,本地并没有显示任何有关建议的信息.在我们的CI环境中,它提供了一长串我想避免的建议.我想看看从缓存中加载的内容的输出和那种东西,只是不想看到这个.我一直在浏览文档,但却无法弄清楚如何隐藏它.

建议是(以及其他许多)......

symfony/security-core suggests installing symfony/expression-language (For using the expression voter)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol)
phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
phpseclib/phpseclib suggests installing pear-pear/PHP_Compat (Install PHP_Compat to get phpseclib working on PHP < 4.3.3.)
patchwork/utf8 suggests installing ext-intl (Use Intl for best performance)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
Run Code Online (Sandbox Code Playgroud)

如何隐藏此输出?

Wou*_*r J 6

当您composer install在具有composer.lock文件的项目上运行时,它只会安装在composer.lock文件中锁定的版本,而不是任何内容.换句话说,所需的包和版本已经解决,它只是安装它.

当您composer install在没有composer.lock文件的项目上运行时,Composer将解析所需的软件包及其版本,并composer.lock在安装之前将其存储在文件中.在这种情况下,项目未设置,您会收到有关其他建议包的通知.

在第二种情况下,您无法从输出中隐藏建议的包列表(至少在撰写此答案时).在第一种情况下,没有什么是新的,所以根本没有显示.

解决方案是将composer.lock文件推送到服务器,这毕竟是一个很好的做法(您不希望生产服务器具有除开发环境之外的其他版本的依赖项,新版本可能会破坏您的站点).


jak*_*man 6

从composer 1.6.3开始,有一个--no-suggest选项可在运行composer installcomposer update时隐藏所有建议。