我需要在我的ddev项目上运行composer,而不是在我的Windows机器上运行它。例如,项目在启动前需要composer install
。如何在这种环境中使用composer,特别是在Windows上?
答案 0 :(得分:3)
更新2018-11-15以显示本机ddev支持(ddev composer命令)
有几种方法可以为您的项目运行composer。
ddev composer
和ddev 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
与<{1}}完全相同,因此您无需了解底层文件系统的复杂性。文档中有drupal和TYPO3 composer create-project
个例子。
这里没有任何东西阻止你使用任何你熟悉的编曲技术,但这是一个很好的方法来获得可预测的on-linux容器内作曲家版本。对于使用Windows操作系统的人来说,这应该是非常重要的,因为编写器的可用性较低且行为不可预测。
以老式方式在主机上安装:如果您的计算机/主机上的作曲家为installed,则为ddev composer create
。但是,这仅适用于macOS和Linux,并且只有在您拥有正确版本的php相关组件时才有效。它在Windows(NTFS)上完全不能正常工作,因为编辑器创建的符号链接与(Linux)Web容器内的使用不兼容。 (在Windows上安装Composer并不困难:使用chocolatey和composer install
。您将要在c:\ tools \ php72 \ php.ini中启用gd和curl扩展程序
所有正常的编写器行为始终都安装在您的Web容器中,因此无论您是否在主机上都有作曲家,都可以使用它。例如:choco install -y composer
将在存储库的根目录中执行作曲家安装,与ddev exec composer install -d /var/www/html
完全相同。您也可以执行ddev composer install
并在容器中的命令行上操作。
ddev ssh
对于有关作曲家模式的一些较旧的想法(大部分被 hooks:
post-start:
- exec: composer install -d /var/www/html
淘汰,请参阅
答案 1 :(得分:0)
为了扩展 accepted answer,DDEV 现在有一个 composer-specific hook。
hooks:
post-start:
- composer: install -d /var/www/html
我假设使用它而不是 exec
的原因是还有 pre-composer
和 post-composer
钩子,所以也许这也会执行这些钩子。不过,我不确定这一点或实际差异。