错误:您引用了一个不存在的脚本@php artisan包:discover

时间:2018-02-13 06:31:17

标签: php laravel composer-php

我在laravel项目中运行 composer dump-autoload 时遇到错误

composer dump-autoload
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
You made a reference to a non-existent script @php artisan package:discover

然后执行php artisan包:发现返回

Discovered Package: barryvdh/laravel-ide-helper
Discovered Package: cartalyst/sentinel
Discovered Package: laravelcollective/html
Discovered Package: laracasts/generators
Package manifest generated successfully.

然后又得到同样的错误

composer dump-autoload
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
You made a reference to a non-existent script @php artisan package:discover

可能有什么问题? composer self-updatecomposer global update没有帮助。

4 个答案:

答案 0 :(得分:4)

好的,我认为composer dump-autoload即使有了这个警告就行了。 (感谢用户:Sohel0415评论)作曲家无法运行  在composer.json文件中使用@符号的脚本。

如果您想摆脱此警告,请执行

composer dump-autoload --no-scripts

您可以暂时从"post-autoload-dump": []文件中"scripts": {}删除@ composer.json脚本,这应该是好的。

答案 1 :(得分:2)

您还可以尝试使用此命令更新全局composer软件包。

composer self-update

我遇到此错误是因为我的Composer版本太旧,无法读取@符号。

答案 2 :(得分:0)

我已经改变

 "scripts": {
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@/usr/local/bin/php artisan package:discover --ansi"
    ],
    "post-root-package-install": [
        "@/usr/local/bin/php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@/usr/local/bin/php artisan key:generate --ansi"
    ]
}

"scripts": {
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover --ansi"
    ],
    "post-root-package-install": [
        "@/usr/local/bin/php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate --ansi"
    ]
}

在composer.json

答案 3 :(得分:0)

我只是遇到这个问题,试图将作曲家的本机cache-clear命令添加到我制作的名为composer nuke的自定义脚本中。我将其用作@clear-cache,并收到消息“您引用了不存在的脚本@ clear-cache”。

我猜@符号仅用于自定义命令。我必须将composer cache-clear放在自定义命令中,错误已解决,命令随后按预期运行。