推荐使用 composer remove 命令(composer 2.2+)卸载包,它会自动清理 composer.json、更新 autoload 配置并重装依赖;手动删包需运行 composer install 并检查类引用、服务提供者及配置文件中的残留。

直接移除依赖包不会自动清理 autoload 配置和残留文件,必须手动验证 vendor/autoload.php 是否仍能正常加载、是否还有未声明的类引用。
运行 composer remove 命令(推荐方式)
Composer 2.2+ 内置了 remove 命令,它会同时删掉 composer.json 中的条目、执行 composer install 清理 vendor/,并更新 autoload 相关配置(如 PSR-4 映射)。
- 执行
composer remove monolog/monolog,比composer require --dev的反向操作更安全 - 若提示
Package "xxx" is not required in your composer.json,说明该包是间接依赖(transitive dependency),不能直接 remove,需查composer show -t定位上游依赖再处理 - 命令执行后检查
composer.json的require和require-dev区域是否已清除对应项
手动编辑 composer.json 后必须运行 composer install
仅删 composer.json 里的包名,不等于卸载。Composer 不会主动删除 vendor/ 下已安装但不再声明的包,残留可能引发自动加载冲突或误用。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 删完
composer.json后务必运行composer install --no-dev(生产环境)或composer install(开发环境),强制重装依赖树 - 如果项目启用了
optimize-autoloader(如部署时加--optimize-autoloader),删包后要重新生成 autoloader:composer dump-autoload -o - 注意:
composer update会升级其他包,不是“瘦身”本意;除非明确需要同步更新,否则避免使用
检查残留类引用和自动加载问题
移除包后最常出现的错误是 Class 'MonologLogger' not found 或类似 fatal error,说明代码里仍有硬编码调用,或某处用了 class_exists()、interface_exists() 判断但没做兜底。
- 全局搜索
use Monolog、new Logger、Monolog\等关键词(注意转义) - 检查
config/、app/Providers/、tests/下是否注册了该包的服务提供者或 Facade - 运行
composer dump-autoload -p(-p表示“psr-0/psr-4 only”)可快速验证 autoload 映射是否干净,失败说明有未清理的映射项 - 某些包(如
phpunit/phpunit)被require-dev引入,但测试类中用了@requires extension mbstring这类注解——移除后 PHPUnit 可能无法启动,得同步删掉相关测试或改写断言逻辑
真正瘦下来的项目,不只是 vendor/ 少了几 MB,而是所有代码路径都不再隐式依赖那个包。最容易被忽略的是 config 文件里的 class 字符串、事件监听器数组、中间件注册列表——它们不会报错,直到某次请求触发才崩。










