为啥 Laravel vendor:publish 返回“无法找到可发布的资源”?

Posted

技术标签:

【中文标题】为啥 Laravel vendor:publish 返回“无法找到可发布的资源”?【英文标题】:Why is Laravel vendor:publish returning "Unable to locate publishable resources"?为什么 Laravel vendor:publish 返回“无法找到可发布的资源”? 【发布时间】:2020-11-06 08:13:57 【问题描述】:

我正在 Laravel 7 中实现一个包,并使用 https://github.com/jeroennoten/Laravel-AdminLTE 作为参考。

在我的包中,我有以下结构

packages/mypackage/src/MyServiceProvider.php
packages/mypackage/config/config.php

这是来自服务提供者的启动方法

public function boot()
    
        if($this->app->runningInConsole()) 
            $this->publishes([
                $this->loadConfig() => config_path('myconfig.php'),
            ], 'config');
        
    

这就是 loadConfig() 方法

private loadConfig() 
        return join(DIRECTORY_SEPARATOR, array(
            __DIR__,
            '..',
            'config',
            'config.php'
        ));
    

但是当我从项目的根目录运行以下命令时,它不起作用

php artisan vendor:publish --provider="MyPackage\MyPackageServiceProvider" --tag="config"

我收到此错误消息

Unable to locate publishable resources.
Publishing complete.

【问题讨论】:

您是否尝试过删除 vendor 文件夹和 composer.lock 文件并重新安装所有依赖项? 我尝试删除供应商文件夹和 composer.lock 文件,然后运行 ​​composer update,但之后我仍然收到相同的消息 你的文件是config还是myconfig.php? 不,它被称为 config.php 但移动时它应该被命名为 myconfig.php 【参考方案1】:

只需运行php artisan vendor:publish 并选择您要发布的课程。它在 Laravel 8 上对我有用

【讨论】:

以上是关于为啥 Laravel vendor:publish 返回“无法找到可发布的资源”?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:通过发布第三方包来更新 .env 文件

laravel 5.1 Artisan::call() 参数--供应商标签:发布不起作用

找不到 Tymon JWTAuth 类

为啥 laravel 中的刀片文件不显示?

为啥只有一些 laravel 路由返回模型属性?

laravel 认证为啥不能去掉email