You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Laravel包rah1595/laravel-drag-menu安装失败求助

问题描述

我Fork了Laravel拖拽菜单构建包efectn/laravel-menu-builder,为兼容Laravel 10修改了composer.json中的包名为rah1595/laravel-drag-menu,但尝试安装时遇到以下报错:

报错1

执行命令 composer require rah1595/laravel-drag-menu 时:

In PackageDiscoveryTrait.php line 368:

  Could not find a matching version of package rah1595/laravel-drag-menu. Check the package spelling, your version co
  nstraint and that the package is available in a stability which matches your minimum-stability (dev).

报错2

执行命令 composer require rah1595/laravel-drag-menu:dev-master 时:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires rah1595/laravel-drag-menu, it could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
 - It's a private package and you forgot to add a custom repository to find it

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

我的包的composer.json内容:

{
    "name": "rah1595/laravel-drag-menu",
    "description": "Wordpress like drag & drop menu builder for Laravel",
    "keywords": ["Laravel", "Menu", "Wordpress", "Builder", "Drag and Drop"],
    "authors": [
        {
            "name": "Rah",
            "email": "rah38951@gmail.com",
            "role": "Maintainer"
        },
        {
            "name": "Muhammed Efe Çetin",
            "email": "efectn@protonmail.com",
            "homepage": "https://6tel.net",
            "role": "Maintainer"
        },
        {
            "name": "Rendy Harimayco",
            "email": "rendyharimayco@gmail.com",
            "role": "Original Developer"
        },
        {
            "name": "Cristian Garcia",
            "email": "informacion@cristiangarcia.co",
            "role": "Original Developer"
        }
    ],
    "require": {
        "php": "^8.1",
        "illuminate/support": "^5.5|^6.0|^7.0|^8.0|^9.0|^10.0",
        "vendor/package": "1.1.1"
    },
    "autoload": {
        "psr-4": {
            "Efectn\\Menu\\": "src/"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "Efectn\\Menu\\MenuServiceProvider"
            ],
            "aliases": {
                "Efectn": "Efectn\\Menu\\Facades\\Menu"
            }
        }
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/rah1595/laravel-drag-menu"
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": true
}

我的GitHub仓库地址是rah1595/laravel-drag-menu,希望能像常规Laravel包一样正常安装。


解决方案

1. 修复包的composer.json问题

  • 删除无效依赖项:你的包配置里有个不存在的依赖"vendor/package": "1.1.1",这会导致Composer无法解析依赖,直接删掉这一行。
  • 移除仓库配置:不要把自定义仓库写在包自身的composer.json中,仓库配置应该放在要安装该包的Laravel项目的composer.json里。

2. 给仓库打版本标签(推荐)

如果想让Composer识别稳定版本,给你的GitHub仓库打一个语义化版本标签(比如v1.0.0),这样后续安装可以不用指定dev-master版本。

3. 项目端配置与安装

步骤1:修改目标项目的composer.json

在你要安装该包的Laravel项目中,添加自定义仓库和稳定性配置:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/rah1595/laravel-drag-menu"
    }
],
"minimum-stability": "dev",
"prefer-stable": true

步骤2:执行安装命令

  • 如果已经打了版本标签,直接执行:
    composer require rah1595/laravel-drag-menu
    
  • 如果未打标签,指定开发版本安装:
    composer require rah1595/laravel-drag-menu:dev-master
    

4. 可选:发布到Packagist

如果希望其他用户无需添加自定义仓库就能安装你的包,可以将GitHub仓库提交到Packagist,这样Composer就能直接从官方源拉取你的包。

内容的提问来源于stack exchange,提问作者Wilz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:54:52