Composer不支持素材重载或更新外部源文件不丢动画,它只管理PHP包、自动加载规则和锁文件,对图片、动画、JSON等非PHP资源完全不可见、不处理。

Composer 没有“素材重载”或“更新外部源文件不丢动画”这类功能——它压根不管动画、图片、JSON 配置、前端资源等非 PHP 依赖内容。所谓“素材”,只要没被声明为 composer.json 中的 require 包,Composer 就完全看不见、不管理、不重载、不备份。
为什么 composer update 不会动你的图片/动画/JSON 文件
Composer 只处理三类东西:PHP 包(vendor/ 下的代码)、自动加载规则(autoload)、以及锁文件(composer.lock)。你放在 public/assets/ 或 resources/animations/ 里的 Lottie JSON、SVG 动画、MP4 视频,哪怕名字叫 composer-ready.json,它也当不存在。
- 运行
composer update或composer install时,这些文件不会被复制、覆盖、校验或清理 -
--discard-changes对它们完全无效——因为它们不在 Git 仓库里(或即使在,也不属于某个已安装的 Composer 包) - 如果你用
repositories声明了 path 类型包,并把动画文件放进了那个目录,那它才可能被composer update重拉——但这是路径包本身的更新行为,不是 Composer “重载素材”
想让静态资源随依赖更新自动同步?得自己搭链路
没有现成命令,但可组合实现。关键点是:别指望 Composer,改用构建脚本或钩子接管。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 在
composer.json的scripts里加 post-update-cmd:比如"cp -r ./vendor/some-ui-kit/dist/assets/* ./public/assets/" - 若动画来自 NPM 包(如
@lottiefiles/lottie-player),应走npm install+postinstall脚本导出,而非靠 Composer - 用
composer config extra.asset-copy这类字段纯属自定义,Composer 不识别也不执行;真要自动化,得配composer-plugin或写PluginInterface实现
常见误操作:以为改了 lock 就能“重载素材”
有人手动编辑 composer.lock,往里塞个 "animation-pack": {"version": "1.2.0"} 字段,再跑 composer install——结果什么也没发生。原因很直接:
-
composer.lock只记录已安装包的元数据,不能凭空声明新资源类型 - 没有对应
require条目,Composer 解析器直接跳过该字段,连警告都不会抛 - 这种修改还会导致
composer validate失败,或后续update因哈希不匹配而报错
真正要保障动画/素材一致性,唯一可靠方式是把它纳入版本控制(如 Git LFS 管理大文件),或作为独立发布产物由 CI 构建后推送到 CDN——Composer 不是资源分发工具,强行让它扛这活,只会让问题更隐蔽。

















