【问题标题】:composer local package refuses to grab from local path作曲家本地包拒绝从本地路径抓取
【发布时间】:2020-04-13 09:08:36
【问题描述】:

我正在尝试修改现有的作曲家包。 我从 github 分叉了原始包,将它克隆到我的本地机器上,现在尝试让我的 laravel 应用程序将它与以下 composer.json 文件一起使用:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "5.6.*",
        ....
        "vendor/packagenamehere": "dev-dynamic-logo",
        ....
    },
    "minimum-stability": "dev",
    "repositories": [
        {
            "type": "composer",
            "url": "https://www.setasign.com/downloads/"
        },
        {
            "type": "path",
            "url": "path/to/package/on/my/machine",
            "options": {
              "symlink": true
            }
        }
    ],
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "laravel/dusk": "^1.0",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7",
        "staudenmeir/dusk-updater": "^1.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Helpers/env.php",
             ....
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "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",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

然后我开火composer update vendor/packagename --prefer-dist - 什么都没有。

无论我尝试什么,composer 仍然会从 packagist 中获取。

有什么想法吗?

【问题讨论】:

  • 我认为,如果 composer 在其默认存储库中找不到包,它只会使用您指定的存储库。但是,您可以将包本身指定为来自路径而不是指定版本
  • @apokryfos 作曲家将仅在没有存储库匹配时使用 packagist。

标签: laravel composer-php


【解决方案1】:

来自https://getcomposer.org/doc/05-repositories.md#path

如果包是本地 VCS 存储库,则版本可能由当前签出的分支或标记推断。否则,版本应该在包的 composer.json 文件中明确定义。如果通过这些方式无法解析版本,则假定为 dev-master。

确保在您的克隆包存储库中签出“动态徽标”分支或更新包的 composer.json 中的版本。 还要检查在 composer.json 中声明的包的名称是否与您的“供应商/包名”匹配。

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    相关资源
    最近更新 更多