如何从供应商目录的内容重新创建 composer.json?

Kus*_*ush 2 composer-php

我有一个正在使用的项目composer

但是,我丢失了我的composer.json.

有没有办法composer.jsonvendor目录的内容重新创建?

loc*_*inz 7

通过检查可以轻松识别已安装的依赖项

vendor
??? composer
    ??? installed.json
Run Code Online (Sandbox Code Playgroud)

但是,您将面临以下问题:

直接和间接依赖

installed.json列出所有已安装的依赖项,即两者

  • 直接的
  • 间接

依赖关系。

直接依赖项是在require和中明确列出的依赖项 require-dev部分。

间接依赖是直接依赖的依赖。

也就是说,虽然你可以以编程方式解析installed.json和收集其中所列的依赖关系,你需要自己决定是否这些直接或间接的依赖关系,或者换句话说,无论你是想明确地要求这些依赖关系 composer.json

生产和开发依赖

installed.json列出所有已安装的依赖项,即取决于您是否运行

$ composer install
Run Code Online (Sandbox Code Playgroud)

或者

$composer install --no-dev
Run Code Online (Sandbox Code Playgroud)

在丢失之前composer.json, ,installed.json将包含中列出的直接和间接依赖项

  • requirerequire-dev
  • require

部分,分别。

也就是说,您需要自己决定这些依赖项是否应该列在

  • require 或者
  • require-dev

部分。

了解更多关于这些部分的目的和区别的信息。

版本限制

installed.json列出安装了确切 版本的所有已安装依赖项。

但是,composer.json您很可能没有列出具有确切版本的依赖项,而是使用多种可能性之一来指定版本约束。

也就是说,您需要自己决定是要使用精确版本,还是放宽约束,例如,通过使用

  • ~运营商
  • ^运营商
  • 等等。

了解有关版本限制的更多信息。