composer中文镜像不裁剪冗余内容,vendor体积大主因是默认安装tests/docs/translations等非运行文件;需用--no-dev、--prefer-dist、archive.excludes插件源头过滤,并配合--classmap-authoritative强制类映射生效。

中文镜像环境本身不改变 Composer 的依赖清理逻辑,真正影响清理效果的是你是否在镜像加速的同时忽略了安装阶段的冗余控制——比如用了阿里云镜像却仍默认安装 tests/、docs/ 和中文翻译文件。
为什么换镜像后 vendor 还是很大?
镜像只加速下载,不自动裁剪内容。GitHub Release ZIP 包里带的 .git、tests/、translations/ 会原样解压进来。尤其当包作者没配 archive.excludes,或你本地 composer.json 没设 "prefer-dist": true,就会 fallback 到 source 模式,体积翻倍。
- 检查当前是否走 dist:运行
composer config --global repo.packagist.org,确认返回的是镜像 URL(如https://mirrors.aliyun.com/composer/),再看composer install日志里是否有Downloading ... from dist - 强制启用 dist:在
composer.json加"prefer-dist": true,或全局设composer config --global prefer-dist true - 镜像不解决路径污染:monolog 的中文翻译在
src/Monolog/Translator/,不是/translations/,靠镜像删不掉
中文翻译文件怎么精准剔除?
不能靠删目录名猜路径,必须查每个包的实际存放位置。插件 vaimo/composer-cleaner 是唯一可靠方式,它在 post-install-cmd 阶段执行 unlink(),不碰 autoload 映射。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先装插件:
composer require --dev vaimo/composer-cleaner(无需额外装symfony/translation,新版已解耦) - 在
composer.json的extra段加排除规则,例如:"cleaner": { "exclude": [ "/translations/", "/locale/", "/lang/", "/src/Monolog/Translator/", "/lib/Doctrine/DBAL/Tools/Console/Helper/" ] } - 执行
composer update --lock && composer install --no-dev触发清理;--no-dev必须加,否则phpunit/phpunit带的中文字符串白删
清理后 Class not found 怎么办?
这不是插件删错了,而是 autoloader 缓存没刷新。Composer 在 --classmap-authoritative 模式下会跳过动态扫描,直接查 vendor/composer/autoload_classmap.php,而这个文件不会因 unlink() 自动更新。
- 必须补一步:
composer dump-autoload -o --classmap-authoritative - 检查
vendor/composer/autoload_psr4.php里是否还有已删路径(比如"Monolog\Translator\" => ["src/Monolog/Translator/"]),有就手动删掉整行 - Docker 或 CI 环境要清 opcache:
opcache_reset()或重启 PHP-FPM
最易被忽略的是配置驱动型引用:比如 config/logging.php 里写死的 'handler' => 'monolog/handler/stream',composer-unused 扫不出来,删了包却还在代码里反射调用——这类必须 grep 全局搜字符串,不能只信工具输出。










