首页 > 解决方案 > 作曲家本地包拒绝从本地路径抓取

问题描述

我正在尝试修改现有的作曲家包。我从 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 仍然会从 packagegist 中获取信息。

有任何想法吗?

标签: laravelcomposer-php

解决方案


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

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

确保在您的克隆包 repo 中签出“dynamic-logo”分支或更新包的 composer.json 中的版本。还要检查在 composer.json 中声明的包的名称是否与您的“供应商/包名”匹配。


推荐阅读