脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)

Posted

技术标签:

【中文标题】脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)【英文标题】:Script php artisan clear-compiled handling the pre-update-cmd event returned with an error (Laravel 4.1 upgrade) 【发布时间】:2014-05-16 08:12:58 【问题描述】:

我最近尝试从 Laravel 4.0 升级到 Laravel 4.1,运行 php composer.phar update 时出现以下错误:

Script php artisan clear-compiled handling the pre-update-cmd event returned with an error



  [RuntimeException]  
  Error Output:       



update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]

我只需要:

"require": 
        "laravel/framework": "4.1.*",
        "way/generators": "2.*",
        "madewithlove/laravel-oauth2": "0.4.*"
    ,

另外,我在错误之前收到了这个(即使我在我的环境中运行 php 5.4.10):

phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
phpseclib/phpseclib suggests installing pear-pear/PHP_Compat (Install PHP_Compat to get phpseclib working on PHP < 4.3.3.)
d11wtq/boris suggests installing ext-readline (*)
d11wtq/boris suggests installing ext-pcntl (*)
Writing lock file
Generating autoload files

编辑:

composer.json 中使用的脚本:

"scripts": 
        "pre-install-cmd": [
            "php artisan clear-compiled"
        ],
        "post-install-cmd": [
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    ,

【问题讨论】:

您是否遵循升级程序?运行composer update 是不够的。 laravel.com/docs/upgrade 在升级中进行上述更改修复了问题。谢谢你。如果你想回答,我会给你打勾。 好的,我会回答的,谢谢。 如果你使用的是 ubuntu 然后 sudo php5enmod mcrypt 【参考方案1】:

也许你可以试试这个命令:

composer install --no-scripts

【讨论】:

这篇文章并不是回答问题的实际尝试。请注意*** doesn't work like a discussion forum,这是一个问答网站,每个帖子都是问题或问题的答案。帖子也可以有comments - 像这样的小句子 - 可用于批评或要求作者澄清。这应该是评论或new question 除了这是对我有帮助的实际解决方案。 在 Laravel 5.2 中为我工作【参考方案2】:

您是否遵循升级程序?运行composer update 是不够的。 laravel.com/docs/upgrade

【讨论】:

我会给我一个正确的方向。我从 4.0 - 4.1 更新,从未寻找更新说明。遇到与发帖人相同的问题,并按照更新说明进行操作。再次运行更新,它成功了。 只是为以后可能会发现此内容的任何人添加的注释 --- 更改顺序很重要!升级过程要求在进行更改 之后运行composer update。我试图先运行它并遇到这个问题。 @Kryten 如果我在进行更改之前进行了作曲家更新,我该怎么办? @RichBradshaw 我只是忽略了错误,进行了升级说明中建议的其余更改,然后在最后运行composer update。效果很好。 从 5.5 迁移。 “随着最近对 PHP 操作码缓存的改进,不再需要优化 Artisan 命令。您应该从部署脚本中删除对该命令的任何引用,因为它将在 Laravel 的未来版本中删除。”【参考方案3】:

尝试删除 /bootstrap/compiled.php(我在降级 Laravel 4.2 > 4.1 时遇到了麻烦)

然后尝试composer update,它应该可以工作。

祝你好运

【讨论】:

【参考方案4】:

在您的 composer.json 中尝试以下操作。 clear-compiled 处理 pre-update-cmd 事件是您的错误,您可以清除它。

"scripts": 
    "pre-install-cmd": [
        "php artisan clear-compiled"
    ],
    "post-install-cmd": [
        "php artisan optimize"
    ],
    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ]
,

尝试再次运行以下命令:

 php composer.phar update

【讨论】:

进行此更改后(请参阅上面的编辑),我仍然收到错误:Script php artisan clear-compiled handling the pre-update-cmd event returned with an error [RuntimeException] 错误输出: 【参考方案5】:

为我工作:

根据升级指南更新 composer.json 后,获取所有更新的 repo:

composer update --no-scripts

然后:composer dump-autoload -o

然后,我再次运行更新,以便我的更新前/更新后脚本可以运行:composer update

应用程序在浏览器中加载,我的所有测试都使用 5.2 再次通过。希望这会有所帮助。

【讨论】:

【参考方案6】:

如果使用laravel 5,则正确删除的文件是bootstrap/cache文件夹中的services.json,此错误是由于未完成更新导致composer损坏时引起的,

【讨论】:

【参考方案7】:

如果其他答案都不起作用,请试试这个:

"pre-update-cmd": [],
"post-update-cmd": [
    "php artisan clear-compiled",
    "php artisan optimize"
],

【讨论】:

以上是关于脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)的主要内容,如果未能解决你的问题,请参考以下文章

脚本 @php artisan package:discover 处理返回的 post-autoload-dump 事件,错误代码为 255

脚本 php artisan 优化处理使用 laravel 5.4 返回的 post-update-cmd 事件,错误代码为 1

脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)

php artisan serve - 如何让mysql运行

Laravel artisan 命令 - 更改脚本中的选项?

Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)