在composer中,require和install与create-project之间的区别

Viv*_*ndi 18 php composer-php

我不知道create-project作曲家的作品如何.让我们以Laravel为例.

我可以使用以下命令安装此PHP框架:

composer create-project laravel/laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)

这个命令为我安装了框架,在我的目录根目录中留下了一些文件夹:

  • 应用
  • 引导
  • 上市
  • 供应商

加上一些文件.

但是,当我只使用以下composer命令时:

composer require laravel/laravel --prefer-dist
composer install
Run Code Online (Sandbox Code Playgroud)

然后这只安装vendor文件夹.编辑器不会下载任何其他文件和文件夹.

怎么会?有什么不同?当我使用create-project laravel/laravel命令时,作曲家如何知道要获取的其他文件?为什么我只能获取vendor文件夹require laravel/laravel

han*_*nzi 14

require将为composer.json文件添加依赖项并将其加载到vendor目录中,因为您已经正确注意到了.

create-project另一方面,将克隆依赖项,即使用依赖项作为新项目的模板.看看后面的存储库laravel/laravel:https://github.com/laravel/laravel

  • 谢谢.我之前没有看到这个,但我现在明白了.`laravel/laravel` repo需要`laravel/framework`,反过来需要它的所有`Illuminate`依赖.那些`Illuminate`依赖项需要所有其他第三方库.这就是它最终通过作曲家建立的方式(如果有人对此感兴趣). (4认同)