【问题标题】:Publishing custom package files using Laravel with composer使用 Laravel 和 composer 发布自定义包文件
【发布时间】:2018-12-21 18:48:03
【问题描述】:

我已经创建了新包,我想避免单独发布命令,我需要在包 composer.json 文件中包含发布命令。所以当安装包时,它应该根据服务提供者路径移动文件。

我尝试了以下方法,但资产/文件没有发布。

"scripts": {
    "post-install-cmd": [
        "php artisan vendor:publish --provider=\"<vendorname>\\<packagename>\\<Serviceprovider>\" --tag=public --force",
        "php artisan migrate"
    ],
    "post-update-cmd": [
        "php artisan vendor:publish --provider=\"<vendorname>\\<packagename>\\<Serviceprovider>\" --tag=public --force",
        "php artisan migrate"
    ]
  }

但是直接运行下面的命令就可以了

php artisan vendor:publish --provider="<vendorname>\<packagename>\<Serviceprovider>"

请提供解决方案。

【问题讨论】:

    标签: laravel laravel-artisan composer-php


    【解决方案1】:

    也许您应该尝试在命令之前使用@,并且我建议您尝试在“post-autoload-dump”部分中写入命令。这对我有用。

    "scripts": {
        "post-autoload-dump": [
            "@php artisan vendor:publish --provider='<vendorname>\\<packagename>\\<Serviceprovider>' --tag=public --force",
            "@php artisan migrate"
        ]
      }
    

    【讨论】:

      【解决方案2】:

      Composer 不支持自动运行除根级别以外的脚本。这是somewhat contested, but doesn't look like it's going to change any time soon

      您最好的选择可能是手动运行命令/指示用户在自述文件中手动运行命令:composer run-script post-install-cmd -d ./vendor/[name]/[package]

      【讨论】:

        【解决方案3】:

        您是否手动尝试使用以下代码。如果它返回您需要的东西,那么您就在正确的轨道上。其他一些错字是脚本的命令。

        composer run-script post-install-cmd
        

        【讨论】:

          猜你喜欢
          • 2017-09-09
          • 2017-10-19
          • 1970-01-01
          • 2015-05-23
          • 2021-05-22
          • 2017-07-19
          • 1970-01-01
          • 2014-08-14
          • 2023-03-10
          相关资源
          最近更新 更多