composer install与composer install --dev命令是否存在差异?
composer install 与 composer install --dev 的差异
首先明确核心逻辑:
composer install默认会安装composer.json中require和require-dev段的所有依赖,除非你添加--no-dev参数,或者全局配置里禁用了dev依赖。composer install --dev是显式强制安装dev依赖,作用是覆盖全局配置中可能存在的禁用dev依赖的设置,确保require-dev里的包被安装。
你执行两条命令后安装的包完全相同,大概率是以下原因之一:
- 你的项目
composer.json里没有require-dev节点,或者该节点下没有任何依赖包,所以加不加--dev都不会新增内容。 - 之前已经执行过包含dev依赖的安装操作,生成的
composer.lock文件里已经包含了所有dev依赖,composer install会严格按照lock文件的内容安装,因此加不加--dev结果一致。 - 你的composer全局配置默认开启了dev依赖(这是官方默认状态),所以
composer install本身就会安装dev依赖,和显式指定--dev的效果完全重合。
如果想验证两者的差异,可以按以下步骤操作:
- 删除项目根目录下的
composer.lock文件和vendor文件夹 - 执行
composer install --no-dev,此时只会安装require段的依赖 - 再执行
composer install --dev,就能看到额外安装的require-dev段依赖包
内容的提问来源于stack exchange,提问作者Raymond
相关产品推荐
相关产品推荐

