"plugin-api-version"在不同环境下的composer安装中不断变化。

12

我们正在与多人合作开发一个使用Composer包的项目。每当同事更新/安装一个包时,composer.lock文件中的plugin-api-version会发生更改。

如果没有任何包指定plugin-api-version,这是否是一个问题,还是可以忽略不计?

2个回答

7

只有当它变成问题时才是问题。

如果它不会阻止你安装项目,那就不是问题。

但如果多个开发人员在同一项目上工作,并且他们都对依赖项进行更改(例如在该项目上运行“更新”和/或“要求”调用),则最好的做法是所有开发人员都使用相同的版本(希望不是V1)。


更好的做法是在 composer.json 中定义 plugin-api-version 吗? - Quisse
3
通常情况下不需要这么做,这只是开发人员之间的沟通问题。而且,这仅在存在问题时才是一个问题。如果没有问题,可以添加新的包并执行更新,那么这就不是一个问题。如果确实需要在 composer.json 上设置它,那么意味着在 require 中添加类似于 "composer-plugin-api": "^2" 的内容。 - yivi

3
这是因为人们的环境中拥有不同版本的Composer。
自2020年(版本1.10.0)开始,composer.lock 有了一个字段 plugin-api-version 来追踪由哪个Composer版本创建它。
我建议所有开发者使用生产环境中的同一版本Composer,以避免部署时出现意外情况。
您可以通过运行 sudo composer self-update <version> 或从Composer下载页面中的“手动下载”部分下载适当的 composer.phar 文件来升级/回滚版本。
如果开发人员更喜欢拥有和管理他们自己的Composer版本,您可能需要下载 composer.phar 并将其作为项目的一部分。这样,您可以确保在每个项目中基于每个环境使用相同的Composer。

2
是的,但是当涉及到更大、更动态的团队和不同的环境时,这可能很难强制执行... - Quisse
1
Quisse感谢您的评论。您是正确的,我考虑了您的想法并改进了答案。 - Paulo Amaral

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接