【问题标题】:Laravel's composer.json doesn't reinstall all required packagesLaravel 的 composer.json 不会重新安装所有必需的包
【发布时间】:2019-09-12 11:12:08
【问题描述】:

我有这个 Laravel composer.json,它是在运行 composer create-project --prefer-dist laravel/laravel blog 后自动创建的。

不幸的是,当我运行作曲家安装时。它只安装了 38 个而不是 26 个必需的包。

网站上的错误信息是:

Class 'BeyondCode\DumpServer\DumpServerServiceProvider' not found

作曲家配置:

{
    "name": "laravel-distro",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.8.*",
        "laravel/tinker": "^1.0",
        "laravel/installer": "^2.0.1"
    },
    "require-dev": {
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^2.0",
        "phpunit/phpunit": "^7.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "vendor-dir": "vendor",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

已安装的包:

[laravel-distro &cli-image laravel-distro]php:/app$ ls vendor
autoload.php   composer       doctrine       egulias        fideloper      jakub-onderka  league         nesbot         opis           phpoption      psy            ramsey         symfony        vlucas
bin            dnoegel        dragonmantank  erusev         guzzlehttp     laravel        monolog        nikic          paragonie      psr            ralouphie      swiftmailer    tijsverkoyen

[laravel-distro &cli-image laravel-distro]php:/app$ ls vendor_backup/
autoload.php   composer       dragonmantank  fideloper      hamcrest       league         myclabs        nunomaduro     phar-io        phpspec        psy            swiftmailer    tijsverkoyen
beyondcode     dnoegel        egulias        filp           jakub-onderka  mockery        nesbot         opis           phpdocumentor  phpunit        ramsey         symfony        vlucas
bin            doctrine       erusev         fzaninotto     laravel        monolog        nikic          paragonie      phpoption      psr            sebastian      theseer        webmozart
[laravel-distro &cli-image laravel-distro]php:/app$

【问题讨论】:

  • 运行一次composer dump-autoload。以及您在哪个环境中运行 composer install
  • 在我看来设置了错误的环境(也未安装 phpunit)。您可能不需要dev 部分,而是普通部分。
  • 那么 RUN composer install --no-dev 会破坏它吗?
  • @Dennis 是的,如果你使用--no-devrequire-dev 中的包将不会被安装。

标签: laravel composer-php


【解决方案1】:

我相信问题可能是composer.lockcomposer.json 不同步。尝试运行

composer install

并确保您没有这样的消息:

锁文件不是最新的 composer.json 中的最新更改

如果你这样做了,这意味着有人忘记提交 composer.lock - 最简单的解决方案是运行:

作曲家更新

这将导致所有包都将被更新(如果包中的某些内容被更改可能会导致一些问题)但它还应该安装所有不在composer.lock文件中但在composer.json中列出的包

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2019-04-22
    • 2020-06-23
    • 2014-10-28
    • 2018-09-14
    • 1970-01-01
    • 2014-12-08
    相关资源
    最近更新 更多