【问题标题】:Composer not installing local package dependenciesComposer 未安装本地包依赖项
【发布时间】:2018-02-02 20:04:52
【问题描述】:

在我的 Laravel 5.4 composer.json 文件中,我有以下自动加载我的自定义包的内容。请注意,此包未发布,正在本地加载。

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/",
        "Vendor\\Module\\": "packages/vendor/module/src"
    }
},

然后在我的包 composer.json 文件中,我有以下内容

{
    "name": "vendor/module",
    "description": "A custom package",
    "version": "1.0.0",
    "type": "project",
    "authors": [
    ],
    "minimum-stability": "dev",
    "require": {
      "laravelcollective/html": "^5.4.0"
    }
}

但是,当我从 Laravel 根目录运行 composer install 时,它永远不会选择我需要的 laravelcollective/html 包。

有没有办法在未发布的本地包上加载依赖项?

【问题讨论】:

  • 你试过作曲家更新了吗?
  • 你已经有 composer.lock 文件了吗?当您 composer install 时,composer.lock 文件用于拉取依赖项。听起来您需要作曲家更新?事实上,只要你更改了 composer.json 文件中的任何内容,你就需要 composer update。
  • 没错,根应用程序确实已经有一个 composer.lock 文件。我应该删除锁定文件并再次运行 composer update 吗?
  • 不只是运行作曲家更新。它会覆盖现有的。然后,您应该推送新的 composer.lock 文件,以便以后运行 composer install。
  • 好的,我运行了 composer update 并没有说要安装或更新。所以它仍然没有在我的本地包中看到所需的依赖项。

标签: laravel composer-php laravel-5.4


【解决方案1】:

我相信我找到了解决方案,尽管它可能不是适合我的本地包开发的最佳方法。

在根 composer.json 文件中,我添加了以下内容并从 应用程序的根目录 运行 composer update 似乎现在拿起了包及其依赖项并将所有内容安装到根应用程序的主供应商目录中。

"repositories": [
    {
        "type": "path",
        "url": "packages/vendor/module"
    }
],
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.7",
    "vendor/module": "1.0.*"
},
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/",
        "Vendor\\Module\\": "packages/vendor/module/src"
    }
},

这个方法的好处是它只为自定义包创建了一个符号链接,因此你可以继续在包目录中编写更新,并且更改将生效,而不必提交到本地 git 存储库,如果你在 composer.json 的 repositories 字段中将类型设置为 vcs

我还必须在 require-dev 字段中指定 版本号 以便它通过版本约束,否则你会收到警告说包没有运行 composer 时满足最低版本要求。

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 2015-01-24
    • 2017-10-31
    • 2017-03-06
    • 1970-01-01
    • 2018-12-23
    • 2017-09-18
    • 2018-09-11
    • 1970-01-01
    相关资源
    最近更新 更多