使用 --dev 选项可从 require-dev 中移除包,避免因默认从 require 查找导致删除失败。

在使用 composer remove 命令时,--dev 选项的作用是告诉 Composer 从 require-dev 部分而不是 require 部分移除指定的包。
区分 require 和 require-dev
Composer 的 composer.json 文件中包含两个常见的依赖项列表:
- require:项目运行所必需的依赖
- require-dev:仅在开发或测试时需要的工具,比如 PHPStan、PHPUnit、PHP_CodeSniffer 等
如果不加 --dev,Composer 默认会尝试从 require 中删除包。如果该包实际是在 require-dev 里安装的,就会提示找不到包或无法删除。
使用场景示例
假设你之前用下面命令安装了一个开发工具:
composer require --dev phpunit/phpunit现在想卸载它,就必须加上 --dev 选项:
composer remove phpunit/phpunit --dev这样 Composer 才会正确地从 require-dev 中移除该包,并更新 vendor 目录和自动加载文件。
不加 --dev 会发生什么?
如果你执行:
composer remove phpunit/phpunit而这个包只存在于 require-dev 中,Composer 会提示类似:
因为它默认查找的是 require 列表。
基本上就这些。只要记住:哪个地方装的,就用对应选项去删。--dev 装的,就要 --dev 删。










