脚本 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运行