我正在研究laravel 5.2。
当我运行composer install和composer update命令时,它显示错误:
[InvalidArgumentException] Command "optimize" is not defined.
请让我知道如何解决这个问题。
答案 0 :(得分:15)
此工匠命令已弃用。只需将它从composer.json文件中删除即可。
答案 1 :(得分:4)
https://laravel.com/docs/5.6/upgrade说:
之前已弃用的
optimize
Artisan命令已被删除。 随着最近对PHP本身的改进,包括OPcache,optimize
命令不再提供任何相关的性能优势。 因此,您可以从php artisan optimize
中移除scripts
在composer.json
文件中。
答案 2 :(得分:2)
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate",
"php artisan jwt:secret -f"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
]
},
从php artisan optimize
数组以及post-install-cmd
数组中删除post-update-cmd
比看起来像这样。
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate",
"php artisan jwt:secret -f"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
]
},
工作正常,没有任何警告。
答案 3 :(得分:1)
答案 4 :(得分:0)
要添加其他已发布的答案:
将项目从laravel5.2迁移到laravel5.6时遇到了这个错误
在composer.json中进行了以下更改
确保“脚本”的“ post-create-project-cmd”没有“ Illuminate \ Foundation \ ComposerScripts :: postInstall”, “ php artisan优化”行
确保“脚本”的“ post-update-cmd”没有
“ Illuminate \ Foundation \ ComposerScripts :: postUpdate”,
“ php artisan优化”行
**仍然项目没有运行**
日志文件显示“请提供有效的缓存路径”错误。从项目根目录运行以下命令,它可以正常工作。
mkdir -p storage/framework/{sessions,views,cache}