我需要在我的 ddev 项目上运行 composer,但我的 Windows 机器上没有它。例如,该项目需要一个composer install
在启动之前。如何在这种环境中使用作曲家,尤其是在 Windows 上?
2 回答
更新 2018-11-15 以显示本机 ddev 支持(ddev composer 命令)
有几种方法可以为您的项目运行 composer。
- ddev v1.4.0 现在有
ddev composer
andddev composer create
命令。这些在容器内运行作曲家,因此您可以保证获得与容器内托管环境相匹配的作曲家行为。(这对 Windows 用户最重要。)ddev composer require swiftmailer/swiftmailer
ddev composer update
ddev composer install
ddev composer create drupal-composer/drupal-project:8.x-dev --stability dev
请注意,这ddev composer create
并不完全相同,composer create-project
因此您不必了解底层文件系统的复杂性。文档中有drupal和TYPO3 ddev composer create
示例。
这里没有什么可以阻止您使用任何您熟悉的作曲家技术,但这是获得可预测的 on-linux 容器内作曲家构建的好方法。对于使用 Windows 操作系统的人来说,这应该是非常重要的,因为在 Windows 操作系统中,composer 不太可用并且有一些不可预测的行为。
以老式方式安装在主机上:如果您的计算机/主机上安装了 composer ,只需
composer install
. 但是,这只适用于 macOS 和 Linux,并且只有在您拥有正确版本的 php 相关组件时才有效。它在 Windows (NTFS) 上根本无法正常工作,因为作曲家创建的符号链接与 (Linux) Web 容器内的使用不兼容。(在 Windows 上安装 Composer 并不难:使用Chocolatey和choco install -y composer
. 您需要在 c:\tools\php72\php.ini 中启用 gd 和 curl 扩展)所有正常的作曲家行为始终安装在您的 Web 容器中,因此无论您的主机上是否有作曲家,您都可以使用它。例如:
ddev exec composer install -d /var/www/html
将在存储库的根目录中执行 composer install,与ddev composer install
. 您也可以ddev ssh
在容器中的命令行上做和操作。- 每次项目启动时,尝试使用这种钩子方法在容器内(在已安装的分区上)运行 composer install :
hooks:
post-start:
- exec: composer install -d /var/www/html
有关作曲家模式的一些较早的想法(大部分已被 废弃ddev composer
,请参阅