如何从供应商目录生成laravel composer.json?

时间:2016-12-16 11:49:30

标签: laravel packages vendor composer.json

在我的laravel项目中,composer.json和composer.lock文件被删除,我不知道如何从现有的vendor目录重建composer.json文件。 我需要一些帮助或至少一些可以帮助我解决这个问题的指导

1 个答案:

答案 0 :(得分:8)

注意

使用此方法的缺点是main composer.json文件将包含现有或子包或多个包所需的一些包。但不要担心它只能安装一次。但版本可能存在问题。

<强>建议

我建议你使用像git这样的版本控制来克服这种情况。

  

不能保证我将要提供的以下方法,因为它不是通常的情况。   但可能会奏效。

在项目根目录中创建这样的新composer.json文件。如果愿意,可以使用composer init命令。

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.3.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "5.6",
        "symfony/css-selector": "3.1.*",
        "symfony/dom-crawler": "3.1.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "Blog\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}
  • 转到供应商文件夹中的每个包文件夹,找到包的composer.json 文件。从该文件中找到该composer.json文件中该包的"name"
  • 将该软件包的名称添加到 main composer.json 文件的"require"部分。如果你想将这个包添加到开发中,请将其添加到&#34; require-dev&#34;一部分。

  • composer installcomposer update

  • composer dump-autoload