作曲家过时,无需安装



>我想从项目中获取composer.lock(&.json(,并运行一些测试以查看其中是否有过时的包。

composer outdated似乎要求我先安装所有软件包, 但这有点矫枉过正,因为所有需要的信息都应该在 composer.lock-file 中。

  1. 安装后是否有可用的信息,而锁定文件中没有可用的信息?
  2. 是否可以在不运行composer install的情况下找到过时的软件包?

更新 1

我以"foolz/sphinxql-query-builder"作为一个项目的例子。

  • composer.json
    有一个require['foolz/sphinxql-query-builder'] = '^1.0'.
  • composer.lock
    有一个packages[] = {name: foolz/sphinxql-query-builder, version: '1.0.2', ...}
  • ~/.cache/composer/repo/https---packagist.org/p-provider-2018-04.json有一个providers['foolz/sphinxql-query-builder']->sha256
  • ~/.cache/composer/repo/https---packagist.org/provider-foolz$sphinxql-query-builder.json
    有一个packages['foolz/sphinxql-query-builder']->$version
  • 从该文件中,我可以运行
    array_keys((array) $json->packages->{'foolz/sphinxql-query-builder'})
    以获取可用版本的列表。

    1. 那么如何获取最新的'provider-foolz\$sphinxql-query-builder.json'文件呢?
  1. Composer.lock 定义了软件包的确切版本,因此只有使用此文件,您才能定义是否可以将软件包升级到新的标记版本 例如 在 composer.json 中,您有此版本的包"laravelium/sitemap": "^3.0",

在作曲家锁中存在此信息

{ "名称": "拉拉维利姆/网站地图", "版本": "v3.0.1", "源":{ "类型": "git", "网址": "https://gitlab.com/Laravelium/Sitemap.git", "参考": "B287EC4A6B47dcd63FD121199C05E059C479BC6F" }, "dist":{ "类型": "拉链", "网址": "https://gitlab.com/api/v4/projects/Laravelium%2FSitemap/repository/archive.zip?sha=b287ec4a6b47dcd63fd121199c05e059c479bc6f", "参考": "B287EC4A6B47dcd63FD121199C05E059C479BC6F", "沙苏姆": " }, "要求":{ "照明/支持": "5.7.*", "php": ">=7.1.3" }, "require-dev": { "管弦乐队/测试台": "3.7.*", "phpunit/phpunit": "~7.0" }, "类型": "库", "额外":{ "拉拉维尔":{ "提供商":[ "Laravelium\\Sitemap\\SitemapServiceProvider" ] } }, "自动加载":{ "PSR-0":{ "Laravelium\\Sitemap": "src/" } }, "通知网址": "https://packagist.org/downloads/", "许可证":[ "麻省理工学院" ], "作者": [ { "名称": "鲁门·达米亚诺夫", "电子邮件": "roumen@damianoff.com", "主页": "https://damianoff.com", "角色": "开发人员" } ], "描述": "Laravelium 站点地图包的 Laravel。 "主页": "https://laravelium.com", "关键字":[ "网站地图", "发电机", "谷歌新闻", "html", "拉拉维尔", "拉拉维利姆", "PHP", "xml" ], "时间":"2018-09-04T19:08:44+00:00" }

,注意,您将安装版本 v3.{\d+} (>=3 &&<4( 如果存在,并且新标记版本可能有不兼容的更改

  1. composer show -l返回包的列表。红色的软件包可以更新,绿色的软件包是最新版本。

尽管如此,您需要继续进行composer install,因为只有这样您才能了解已安装软件包的确切版本

最新更新