假设我通过Composer安装package for CKEditor并手动add new skins and plugins to it。当下一次更新基础包时,Composer将如何处理这个问题?
是否会覆盖整个软件包目录(删除本地更改)或仅更新列出的文件?
此外,I'm having problems updating one package to newest version并在本地手动更新。然而,composer status
显示No local changes
。这是否意味着,Composer本身不检查每个包的文件夹内容以进行本地更改,只对composer.json
和composer.lock
之间的差异进行操作?
答案 0 :(得分:2)
Composer将更新到与您在composer.json中添加的版本匹配的最新版本,是 - 它将覆盖现有软件包(包括您的所有更改),但它将忽略软件包中不存在的文件。 / p>
命令:"作曲家状态"显示文件中属于指定包的所有更改。如果您要更改某个文件,那么它将显示在该列表中,但如果您要添加新文件,那么当然不会。
通常,您的方法可能在某些情况下有效,但我强烈建议不要这样做。当您创建一些文件时会出现问题,然后将其添加到包中(例如在较新版本中)。
您应该使用所有包"按原样#34;直接在您的应用程序中,并在其中添加新的东西,或其他配置等。
答案 1 :(得分:1)
是否会覆盖整个软件包目录(删除本地更改)或仅更新列出的文件?
是。更新包时,Composer会删除包的当前版本并安装新包。
此外,我在将一个软件包更新到最新版本时遇到问题,并在本地手动更新。然而,作曲家状态显示没有本地更改。这是否意味着,Composer本身不检查每个包的文件夹内容以进行本地更改,只对composer.json和composer.lock之间的差异进行操作?
composer.json中的1. *部分告诉Composer仅在1. *版本范围内有新版本时才更新。新提交不是新版本。程序包所有者创建具有更高版本号的新版本时,将提供新的更新。如果您想在每次新提交后更新,您应该更改" 1。*" to" dev-master"。